본문 바로가기

분류 전체보기141

8. 운영체제 - 선점형 스케쥴러, 비선점형 스케쥴러 선점형 스케쥴러 (Preemptive Scheduling) : 하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할 수 있음 비선점형 스케쥴러 (Non-preemptive Scheduling) : 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음 선점형 스케쥴러는 이미 실행되고 있는 프로세스를 스케쥴러가 중단시키고, 다른 프로세스로 교체하는 것입니다. 새로운 프로세스를 실행하기 위해 실행중인 프로세스를 Block상태로 바꾸고, ready상태의 다른 프로세스를 실행시킵니다. 실행중인 프로세스는 종료되는 것이 아니라, ready상태로 바뀌게 됩니다. 반면, CPU에서 실행되고 있는 프로세스가 wait(block)상태로 바뀌거나, 끝난 상태가 아닐 때 다른 프로세스가 실행되.. 2019. 12. 31.
7. 운영체제 - 프로세스 상태(Process State) 멀티 프로그래밍 : CPU 활용도를 극대화 하는 스케쥴링 알고리즘 Wait : 저장매체로부터 파일 읽기를 기다리는 시간으로 가정 이렇게 하나가 실행되고, 대기시간에 접어들 때 다른 프로그램을 실행시키면서 CPU의 활용도를 높일 수 있습니다. 프로세스의 상태는 이렇게 나누어지는데, 어느 시점에 어떤 프로세스를 실행시킬 것인가에 중요한 영향을 끼칩니다. Running State : 현재 CPU에서 실행 중 Ready State : CPU에서 실행 가능 상태(실행 대기) Block State : 특정 이벤트 발생 상태(ex, 프린트가 가 되거나, 읽기 완료 등) 즉, 어느 시점에 Running되다가, 파일 읽기가 이루어 질 때 그 다음 코드는 실행되지 못하기 때문에 block 상태로 바뀌고, 읽기를 마친 후 .. 2019. 12. 27.
6. 운영체제 - 스케쥴링 알고리즘 프로세스란 메모리에 올라가 실행중인 프로그램을 프로세스라고 합니다. 프로세스라는 용어는 작업, task, job 등 다양한 용어와 혼용됩니다. 응용 프로그램은 여러 개의 프로세스로 이루어질 수 있고, 하나의 응용 프로그램은 여러 개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수도 있습니다. 이러한 프로세스의 실행을 관리하는 것이 바로 스케쥴러입니다. 그리고 스케쥴러가 어느 순서대로 프로세스를 실행시킬지와 관련된 것이 스케쥴링 알고리즘입니다. 여러 알고리즘을 보기 전에 Process가 다음과 같이 있다고 가정합니다. 1) FIFO 스케쥴러 -프로세스가 저장매체를 읽거나, 프린팅 한다던지 하는 작업 없이 계속해서 CPU를 사용한다. -가장 간단한 스케쥴러(배치 처리 시스템)로, FCFS(First Co.. 2019. 12. 27.
5. 운영체제 - 스케쥴링 (배치 처리, 시분할 시스템, 멀티 프로그래밍) 배치 처리 시스템은 App1과 App2가 있을 때, 순차적으로 App1이 끝나면 App2가 실행되도록 할 수 있는 시스템입니다. 따라서, Queue 구조와 유사합니다. Queue 구조는 한 방향으로 들어가서 순차적으로 출력하는 구조이기 때문입니다. 이는 회계에서의 First In, First Out인 FIFO 선입선출과 유사한 의미입니다. 배치 처리 시스템 이후 왜 시분할 시스템, 멀티 태스킹, 멀티 프로그래밍이 등장했을까요? 여러 프로그램을 순차적으로 실행시킬 때, 순서가 뒤에 있는 프로그램들은 너무 오랜 시간을 기다려야 하기 때문입니다. 또, 음악을 들으면서 문서 작성을 하고 싶다면, 배치 처리 시스템에서는 이뤄질 수 없기 때문입니다. 마지막으로, 여러 사용자가 동시에 하나의 컴퓨터를 쓰지 못하기 때.. 2019. 12. 26.