OS 22

인터럽트가 무엇인지 설명해 주세요.

Interrupt(인터럽트)는 프로그램을 실행하고 있는 도중에 입출력 요청 혹은 예외 상황을 처리해야 하면 실행하던 프로그램을 멈추고 CPU가 해당 작업을 처리하도록 하는 것을 의미합니다. 꼬리 질문 인터럽트는 어떻게 처리하나요? 더보기 1. 인터럽트가 발생하면 현재 실행중인 프로그램을 중단하고 PCB에 상태를 저장한다. 2. 인터럽트 서비스 루틴에 대한 정보를 담고 있는 인터럽트 벡터를 찾는다. 3. 인터럽트 서비스 루틴에 따라 인터럽트를 처리하고 PCB를 다시 불러와 중단된 작업을 이어서 수행한다. Polling 방식에 대해 설명해 주세요. 더보기 CPU가 작업을 진행하다 입출력 명령을 만나면 직접 입출력 장치에서 데이터를 가져오는 방식으로 입출력을 하는 동안 다른 작업을 하지 못하기 때문에 작업 효..

OS 2023.08.17

Memory

paging이란 뭔가요? paging은 외부 단편화 문제를 해결하기 위해 나온 개념으로 논리적 주소를 일정한 크기로 나누어 메모리와 매핑하는 방식입니다. 이 방식을 통해 외부 단편화가 해결 되었으나 한 페이지내 사용하지 않는 공간 문제인 내부 단편화가 일어날 수 있어 페이지 크기를 적절하게 정하는 것이 중요합니다 segmentation에 대해서 설명해 주세요 세그멘테이션은 논리적 주소 공간을 논리적 단위인 코드, 데이터, 스택으로 나누어 물리적주소와 매핑하는 방법입니다. [꼬꼬무1] segmentation의 메모리 단편화(Memory fragmentation) 문제에 대해 설명해 주세요 segmentation같은 경우 논리적 단위로 구분하여 필요한 만큼만 할당하기 때문에 내부 단편화는 발생하지 않습니다...

OS 2023.07.03

Process & Thread

Process를 간단히 설명해 주세요 프로세스는 실행 중인 프로그램이란 뜻으로 디스크로부터 메모리에 적재되어 CPU 의 할당을 받을 수 있는 것을 말합니다. [꼬꼬무1] process의 memory영역(code, data, stack, heap)에 대해서 설명해 주세요 프로세스의 메모리 영역은 전역변수, 정적 변수를 저장하는 데이터 영역, 프로그램 코드가 저장되는 코드 영역, 지역변수와 함수 호출에 필요한 정보를 저장하는 스택영역, 런타임 때 동적으로 할당되는 힙 영역으로 나누어져 있습니다. 초기화 하지 않은 변수들은 어디에 저장될까요? 더보기 초기화된 전역변수는 DATA 영역에 초기화 안된 전역변수는 BSS 영역에 저장됩니다. Stack과 Heap 공간에 대해, 접근 속도가 더 빠른 공간은 어디일까요?..

OS 2023.06.29

시스템 콜이 무엇인지 설명해 주세요.

시스템 콜은 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 대표적으로 사용자 프로그램이 디스크 파일을 접근하거나 화면에 결과를 출력하는 등의 작업이 필요한 경우 사용된다. 커널은 운영체제 중 항상 메모리에 올라가 있는 운영체제의 핵심 부분으로써 cpu,ram,disk,i/o device와 같은 컴퓨터 하드웨어 자원을 관리한다. 꼬리 질문 우리가 사용하는 시스템 콜의 예시를 들어주세요. 더보기 파일 관련 시스템 콜로 파일을 열고 읽고 쓰는 open, read, write 시스템 콜이 있고, 프로세스 제어 관련 시스템 골은 현재 프로세스를 복제하여 새로운 프로세스를 생성하는 fork, 새로운 프로그램을 실행하기 위해 현재 프로세스 주소 공간에 새로운 프로그램을 덮어쓰는 exec 시스템 콜..

OS 2023.06.21

가상 메모리

가상 메모리 개발 배경 가상 메모리의 개념이 나오기 이전에는 실행되는 코드의 전부를 물리메모리에 존재 시켜야 했고, 메모리 용량보다 큰 프로그램을 실행 시킬 수 업섰습니다. 또한 가끔만 사용되는 코드가 불필요하게 메모리를 차지하는 문제가 있었고 이를 해결하기 위해 가상 메모리가 나오게 되었습니다 가상 메모리 가상메모리는 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법 이며, 프로그램이 물리 메모리보다 커도 된다는 주요 장점이 있다. Demand Paging(요구 페이징) 프로그램 실행 시작 시에 프로그램 전체를 디스크에서 물리 메모리에 적재하는 대신, 초기에 필요한 것들만 적재하는 전략을 요구 페이징이라 하며, 가상 메모리 시스템에서 많이 사용된다. 그리고 가상 메모리는 대개 ..

OS 2023.04.12

메모리 관리 전략

메모리 관리 배경 물리적으로 보았을 때, 메모리 공간이 한정적이기 때문에 관리의 필요성이 생겼고 그리고 다중 프로그래밍이 지원됨에 따라 메모리 할당이 복잡해져 효율적인 관리의 필요성이 생겼습니다. 메모리 관리 개념 Swapping 다중 프로그래밍 환경에서 CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억장치(e.g. 하드디스크)로 내보내고 다른 프로세스의 메모리를 불러 들이는 것을 뜻한다 주 기억장치(RAM)으로 불러오는 과정을 swap-in, 보조 기억장치로 내보내는 과정을 swap-out 이라 한다. swap 에는 큰 디스크 전송시간이 필요하기 때문에 현재에는 메모리 공간이 부족할때 Swapping 이 시작된다. 단편화 (Fragmentation) 프로세스들이 메모리에 적재되고 제거되는 일이 반..

OS 2023.04.12

프로세스 동기화

Critical Section(임계영역) 임계영역(Critical Section)은 다중 프로세스 또는 스레드 환경에서 공유 자원에 대한 접근을 동기화하기 위해 나온 개념으로 코드상에서 공유 자원에 접근하는 부분을 의미합니다. 동기화 조건 Mutual Exclusion(상호 배제): 한 순간에 오직 하나의 프로세스나 스레드만이 임계영역(Critical Section)에 진입할 수 있도록 하는 것을 의미합니다. Progress(진행): 다른 프로세스나 스레드가 대기하고 있는 경우, 적어도 하나의 프로세스나 스레드는 임계영역에 진입할 수 있어야 하는 것을 의미합니다. Bounded Waiting(한정된 대기): 한 프로세스나 스레드가 임계영역에 진입하기 위해 대기하는 시간에 제한을 두는 것을 의미합니다. 다..

OS 2023.04.12

동기와 비동기의 차이

동기 사용자가 서버로 요청을 보냈을 때, 요청에 대한 응답을 리턴받기 전까지는 다른 것을 하지 못하고 기다리는 방식이다. 설계가 간단하고 직관적이라는 장점이 있지 대기 하느라 다른일을 하지못해 자원이 낭비되는 단점이 있다. 비동기 서버에게 데이터를 요청한 후 요청에 따른 응답을 계속 기다리지 않아도되며 다른 외부 활동을 수행하여도되고 서버에게 다른 요청사항을 보내도 상관없는 방식이다. 동기에 비해 설계가 복잡하지만, 또 다른 작업을 수행할 수 있어서 자원을 효율적으로 사용할 수 있다는 장점이 있다.

OS 2023.04.05

CPU 스케줄러

FCFS(First Come First Served) 특징 먼저 온 순서대로 처리. 비선점형(Non-Preemptive) 스케줄링 일단 CPU 를 할당받으면, CPU burst 가 완료될 때까지 CPU 를 반환하지 않는 방식입니다. 문제점 convoy effect 스케쥴러 평가 기준에 Ready queue에서 기다린 총 시간을 나타내는 waiting time이라는 것이 있는데, 먼저 온 순서대로 처리하다보니 수행시간이 짧은 프로세스가 긴 프로세스를 기다리게 되면서, average waiting time이 늘어나는 현상입니다. SJF(Shortest - Job - First) 특징 다른 프로세스가 먼저 도착했어도 CPU burst가 짧은 프로세스에게 먼저 할당 비선점형(Non-Preemptive) 스케줄링..

OS 2023.04.04

스케줄러

프로세스를 스케줄링하기 위한 Queue 에는 세 가지 종류가 존재한다. Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue : 현재 메모리 내에 있으면서 CPU 를 잡아서 실행되기를 기다리는 프로세스의 집합 Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합 각각의 Queue 에 프로세스들을 넣고 빼주는 스케줄러에도 크게 세 가지 종류가 존재한다. 장기스케줄러(Long-term scheduler or job scheduler) 메모리는 한정되어 있는데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리(일반적으로 디스크)에 임시로 저장된다. 이 pool 에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 read..

OS 2023.04.04