본문 바로가기

728x90
반응형
OS
728x90
반응형
15

CPU 스케줄링(2) : 스케줄링 알고리즘 이전 포스트에 썼다시피, 크게 선점과 비선점으로 나뉘고, 다중 처리기 스케줄링과 실시간 스케줄링 정도 추가. 비선점 스케줄링: 이미 할당된 CPU는 해당 프로세스가 완료될 때까지 다른 프로세스가 강제로 못 뺏음. 일괄처리에서 주로 사용. FCFS(First Come First Service) : 준비상태 큐에 도착한 순서에 따라 CPU를 할당하는 기법 (I/O에서의 FIFO랑 같음) 현재 CPU를 점유하고 있는 프로세스가 CPU버스트를 모두 수행하고 자발적으로 CPU를 반납할 때까지 CPU를 선점하지 않아, CPU 버스트가 긴 프로세스 하나가 CPU 버스트가 짧은 여러 개의 프로세스보다 먼저 레디 큐에 들어가면 평균 대기 시간 길어지는 콘보이 현상(Convoy Effect) 발생. 대신 짧은 애들이 여러.. 2020. 8. 14.
CPU 스케줄링(1) : 기본 개념 다중 처리기 시스템에서는 어느 한순간에 다수의 프로세스들이 메모리 내에 위치하게 되고, 여러 개의 CPU가 수많은 프로세스들을 처리해야 하여 어떠한 프로세스의 대기가 발생하는 일이 발생한다. 이때 OS가 CPU를 쉬지 않고 여러 프로세스들을 끊임없이 작업 중일 수 있도록 프로세스의 배분 및 교환을 해주는 것을 CPU 스케줄링이라고 한다. 즉, 프로세스가 다른 일 처리하는 거 기다리는 동안 CPU 못 쉬게 하고 계속 굴리려고 일거리를 계속 갖다 주고 바꿔주고 하는 것!(이걸 프로세스의 생애주기 동안 모든 상태변화에 대해함) 스케줄링은 공평성, 효율성, 안정성, 반응 시간 보장, 무한 연기 방지를 목표로 한다. 1. 공평성: 모든 프로세스가 자원을 공평하게 배정받아야 하며, 특정 프로세스가 배제되어서는 안 .. 2020. 8. 14.
프로세스 스케줄링, 스케줄링 큐 프로세스 스케줄링 process scheduling 이란 수행 가능한 여러 프로세스들 중에서 하나의 프로세스를 선택하는 것으로, 다중 프로그래밍은 CPU의 이용률을 극대화하기 위하여 항상 어떤 프로세스가 실행되도록 하고, 시분할은 각 프로그램이 실행되는 동안 사용자가 상호작용 할 수 있도록 프로세스들 사이에서 CPU를 빈번하게 교체한다. 실행될 프로세스가 여러 개 있으면 하나만 실행되고 나머지는 CPU가 자유로워질 때까지 대기하는 것으로 선입선출의 방식을 따른다. 큐의 종류에는 작업 큐, 준비 큐, 장치 큐가 있다. 작업 큐 Job Queue 는 메모리 할당을 대기 중인 프로세스들로 구성되고, 준비 큐 Ready Queue 는 CPU 할당을 대기 중인 프로세스들로 구성되며,.. 2020. 8. 2.
Threads 개발 배경: 지금까지의 프로세스는 단일 쓰레드로 동작하는 것을 가정했으나, 대부분의 현대 운영체제는 프로세스의 개념을 확장하여 한 프로세스가 다수의 실행 쓰레드를 가질 수 있도록 허용한다. 단일 스레드: 하나의 프로세스에 하나의 스레드 존재 다중 스레드: 하나 이상의 스레드 존재 Thread: 하나의 프로세스 내에서 병행성을 증대시키기 위한 메커니즘으로, 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위. 프로세스의 역할을 담당한다. = 독립적인 스케줄링의 최소 단위, 동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능함 => 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고도 한다. 프로세스와 쓰레드는 여러 개를 만들어서 따로 실행하는 방식(프로세스)과, 내부에서 쪼개서 일을 분담하는.. 2020. 8. 2.
프로세스(3): Process Control Block PCB, CPU Switching PCB: 운영체제가 프로세스를 관리하기 위해 유지하는 정보의 보관소. 가 정의이지만 걍 현재 프로세스 상태의 모든 정보를 다 기록해놓는 곳이라고 생각하면 된다. 이전 포스팅에서 언급했던 running, waiting 등의 프로세스 상태 process state 부터, program counter, CPU registers, memory limits 등 메모리 관리 관련 정보, list of open files(열린 file 정보), 프로세스에 할당된 I/O 장치 정보 등 I/O관련 정보가 이에 포함된다. 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거된다. 프로세스 간의 CPU 교환인 Switch는 다음과 같은 순서로 진행된다.(여기서는 process p0, p1.. 2020. 8. 2.