OS4 Blocking, Non-Blocking and Async Blocking I/O Model I/O 작업은 User level(application)에서 직접 수행할 수 없기에, 실제 작업은 Kernel Level(OS)에서 일어나는 과정이다. 따라서 유저 프로세스(application)는 커널(OS)에게 I/O 작업에 대해 요청한다. I/O 작업이 끝나고 데이터를 반환하게 되면 그때가 돼서야 애플리케이션 단의 스레드의 block이 해제된다. 애플리케이션의 관점에서는 아무런 동작은 안하는 것처럼 보인다. 하지만 실제로 I/O 작업을 하느라 Block이 되어 있고 커널에서 작업을 하고 있기 때문에 렉이 걸린 것처럼 보이는 것이다. 이 block되어 기다리는 시간이 이 Blocking I/O 문제이며 개선되어야 할 포인트다. Syncronous, Blocking I.. CS/OperatingSystem 2021. 4. 21. 스케줄러 스케줄러 한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 프로세스 중에 하나를 선택하는 역할. 스케줄러 작업 상태 Jop Queue 현재 시스템 내에 있는 모든 프로세스의 집합. Ready Queue 현재 메모리 내에 있으면서 CPU를 할당받기 위해 기다리는 프로세스의 집합. Device Queue I/O 작업을 대기하고 있는 프로세스의 집합. 스케줄러 종류 장기 스케줄러 (JobScheduler) 디스크와 메모리 사이의 스케줄링 담당. 메모리는 제한적인데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리(디스크)에 임시로 저장된다. 이 Pool에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 Ready Queue로 보낼지 결정하는 역할. 프로세스에 memory.. CS/OperatingSystem 2021. 4. 17. 멀티 스레드, 멀티 프로세스 멀티 프로세스 하나의 응용 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업(테스크)을 처리하도록 하는 것. 장점 여러 개의 자식 프로세스 중 하나에 문제가 발생해도 영향이 확산되지 않는다. 단점 Context Swithching Overhead 문맥 교환 과정에서 캐시 메모리 초기화 등 무거운 작업이 진행되고 많은 시간이 소모되는 등의 큰 오버헤드가 발생. 프로세스는 각각의 독립된 메모리 영역을 갖기 때문에 프로세스 사이에서 공유하는 메모리가 없다. 그리하여 문맥 교환이 발생하면 캐시에 있는 모든 데이터를 모두 리셋하고 다시 캐시 정보를 불러와야 한다. ※ Context Swithcing CPU에서 여러 프로세스를 돌아가면서 작업을 처리하는 과정 동작 중인 프로세스가 대기 하면서 해당.. CS/OperatingSystem 2021. 4. 17. 프로세스와 스레드 프로세스 프로그램이란? 어떤 작업을 위해 실행할 수 있는 파일 프로세스란 컴퓨터에서 연속적으로 실행되고 있는 프로그램 또는 활성화 된 프로그램. 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 객체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위. 동적인 개념으로 실행된 프로그램을 의미. ※ 할당받은 시스템 자원이란? CPU 점유시간 메모리에 실제적으로 적재된 주소 공간 메모리영역들(Data,Code,Heap,Stack). PCB(process Control Bolck) 프로세스에 대한 중요한 정보들을 저장하고 운영체제의 자료구조이다. 운영체제들 프로세스들을 관리하기위해 고유한 PCB를 할당한다. PCB를 쓰는 이유는 CPU를 할당받아 작업을 하고 중간에 프로세스 전환이 발생하면 진행하던 .. CS/OperatingSystem 2021. 4. 16. 이전 1 다음