CPU Scheduling
·
CS/OS
Scheduling MetricsTurnaround time\[T_{turnaround} = T_{completion} - T_{arrival}\]프로세스가 생성된 시간부터 종료된 시간까지 걸린 시간으로 기다린 시간까지 포함Response time\[T_{response} = T_{firstrun} - T_{arrival}\]처음 실행때까지 걸린 시간 / 즉 요청을 보낸 후 처음 프로세스가 실행된 시간  Workload Assumptions cpu의 운영 방식을 가정하면서 가장 효율적인 CPU scheduling 방식이 무엇인지 찾아보고자 한다.Each job runs for the same amount of time ( 모든 프로세스가 같은 시간이 소요됨 )All jobs arrive at the sa..
Limited Direct Execution
·
CS/OS
Direct Execution응용프로그램이 실행할 때 모든 권한을 다 주는 것문제점 : 프로세스가 여러개가 돌면 불가능함OSProgram[프로그램이 실행되기 위한 기본 환경 세팅]Create entry for process list - entry = PCB프로세스를 제어하기 위해 PCB를 생성한 후 process list에 넣기Allocate memory for program프로세스가 사용할 메모리 영역 할당 Load program into memory 실행을 위한 instructions 로딩( 메모리 적재)complie 한 exe 파일은 storage에 저장되어 있기 때문임Set up stack with argc/argv 응용 프로그램이 실행되기 위한 user stack만들기 (argc/argv를 넣어..
Data Structures (Process Control Blocks)
·
CS/OS
PCB (Process Control Blocks)프로세스의 정보를 저장하고 있는 데이터 블럭 Linux Kernel > /include/linux/sched.h struct task_struct {...}> PCB 역할을 해주는 구조체 volatile long state;unsigned int __state;unsigned int saved_state;> 현재 프로세스의 상태를 나타내줌 running → TASK_RUNNINGready → TASK_RUNNING (X)bocked → TASK_INTERRUPIBLE 등 (blocked의 종류에 따라 달라짐)void *stack;> Pointer to the kernel-mode stack프로세스 마다 스택이 존재함 → user-mode stack / ..
Disk Scheduling (디스크 스케줄링)
·
CS/OS
디스크 구조 Taccess (디스크 접근시간) = Tseek (탐색 시간) + Trotation (회전 지연시간) + Ttransfer(전송 시간)disk queue : 디스크에 오는 요청을 저장해두는 queue > 디스크 스케줄링 알고리즘을 이용하여 시간을 감소시킴 Disk Scheduling AlgorithmFCFS ( First Come First Served ) disk queue에 요청이 들어온 순서대로 처리장점 : 공평하게 요청을 처리할 수 있음, 단순한 알고리즘단점 : 비효율적임 > 헤드가 움직이는 거리가 매우 커짐 SSTF ( Shortest Seek Time First )탐색 시간이 가장 짧은 것을 선택함  장점 : Seek Time이 적음, 처리량을 극대화할 수 있음단점 : starva..