본문 바로가기

운영체제9

9. 운영체제 - 인터럽트 새해가 밝았네요. 후회가 많은 한 해. 이제 인터럽트에 대해서 공부해보겠습니다. 인터럽트란, CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우 CPU에 알려 처리하는 기술입니다. 인터럽트의 예시로, 우리가 이전에 공부했던 선점형 스케쥴러 구현이 좋은 예가 됩니다. 실행중인 프로세스를 중단시키고, 다른 프로세스를 CPU에서 동작시킬 때 인터럽트를 발생시키는 것입니다. IO Device와 커뮤니케이션을 위해서 인터럽트가 필요하기도 합니다. 저장매체에서 데이터 처리 완료시, 프로세스를 깨워야 합니다. (block state 에서 ready state로) 그렇게 하기 위해서는 인터럽트가 필요한 것입니다. 또, 예외 상황을 핸들링 하는 경우에도 필요합.. 2020. 1. 3.
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.