본문 바로가기

CS38

FCFS, SJF, SRTF, RR의 계산 및 비교 *Waiting time, Turnaround time의 계산 및 비교입니다. Non-preemptive FCFS (First-Come, First-Served) 가장 간단한 스케쥴링 알고리즘 먼저 도착한 프로세스부터 차례대로 실행 도착 순서에 따라 결과가 달라질 수 있음 Total waiting time : 0 + 7 + 10 + 18 = 35 Avg. waiting time : 35 / 4 = 8.75 Total turnaround time : 8 + 11 + 19 + 23 = 61 Avg. turnaround time : 61 / 4 = 15.25 SJF (Shortest-Job-First) 가장 짧은 CPU Burst time을 가진 프로세스부터 실행 항상 최적의 결과를 도출하며, 이를 증명할 수.. 2022. 8. 23.
Context switch란 여러 프로세스들을 동시에 실행(하는 것처럼) 하기 위해 컴퓨터는 그 프로세스들을 번갈아가며 실행하게 되는데, 그 과정에서 일어나는 것이 Context switch이다. Context switch를 직역하면 문맥 교환이라는 뜻이 된다. 즉, Context switch는 프로세스의 문맥(context)인 PCB를 교환(switch)하는 작업이다. PCB의 교환은 Dispatcher에 의해 이루어지고, 아래의 과정을 거친다. 현재 실행중인 프로세스의 PCB를 저장하고, 다음 프로세스의 PCB를 불러온다. PCB에는 다음에 실행될 명령어의 주소(Program counter)를 비롯한 다양한 정보들이 포함되어 있기 때문에 이것을 기억해두지 않으면 다시 처음부터 실행해야 될 수도 있다... 그리고 이로 인한 딜레이.. 2022. 8. 19.
프로세스 상태 전이도 요약 1) new : 프로세스가 생성되고 있는 상태 2) ready : 프로세스가 프로세서에 할당될 수 있고, 할당되기를 기다리는 상태 3) running : 프로세스가 실행되고 있는 상태 4) waiting : 특정 이벤트(I/O 등)의 발생/완료를 기다리는 상태 *특정 이벤트가 선행되어야 CPU를 사용할 수 있다면, CPU는 이를 기다리지 않고 프로세스를 wait queue에 넣어버린다. 바로 ready queue에 넣는 것이 아니다. 넣어봐야 다시 running 상태가 되면 또 이벤트를 기다릴 것이 뻔하니... 5) terminated : 프로세스가 실행을 마친 상태 아래는 queueing이 이루어지는 과정을 묘사한 다이어그램이다. 2022. 8. 19.
멀티스레딩의 장점과 과제 멀티스레딩은 크게 4개의 장점을 가진다. 1. 응답성 (Responsiveness) 싱글스레드로 서버와 클라이언트 간의 통신을 처리하려고 하면 서버는 다수의 통신을 순차적으로 처리하게 된다. 그러나 멀티스레드로 처리한다면 아래 사진처럼 병렬로 처리할 수 있게 된다. 통신이 연결될 때마다 새로운 스레드를 생성하고, 그 스레드에서 통신을 처리하도록 한다. 그러면 뒷 순서의 클라이언트들도 기다릴 필요 없이 빠르게 응답을 받을 수 있다. 응답성이 의미하는 바는 이런 것이다. 2. 자원 공유 (Resource Sharing) 프로세스들 간의 자원 공유는 Shared memory나 Message passing으로 이루어 지는 반면, 스레드 간의 자원 공유는 비교적 간단하다. 위 사진처럼 스레드들은 스택을 제외한 나.. 2022. 8. 13.
매개 변수 탐색(parametric search, 파라메트릭 서치) 매개 변수 탐색은 최적화 문제를 결정 문제로 바꾸어 풀 수 있게 해주는 기법이라고 한다. 최적화 문제란 말그대로 어떠한 함수값을 최적화시키는 변수를 찾는 문제, 그리고 결정 문제는 예-아니오의 형태로 답안이 나오는 문제를 말한다. 매개 변수 탐색의 기저는 이분 탐색인데, 이것을 결정 문제로 바꾼다고 해서 mid가 가리키는 값이 정답인지 바로 알 수 있는건 아니다. 다만 그 값이 정답이 될 수 있는지 정도는 바로 알 수 있다. 매개 변수 탐색은 그 결과를 이용해 탐색 범위를 좁혀가며 답을 찾는 기법이다. 마치 스무고개와도 같다. 문제를 통해 이해해보자. 아래 문제는 백준 단계별을 따라갔을 때 처음으로 만날 수 있는 매개 변수 탐색 문제이다. 문제에 대한 설명은 생략하겠다. 하지만 아래 풀이를 이해하기 위해.. 2022. 8. 9.
좀비 프로세스란 좀비 프로세스에 대한 내용은 아래 사이트에 자세히 나와있다. https://www.joinc.co.kr/w/Site/system_programing/process/Zombie Zombie 프로세스 에 대한 고찰 Zombie 프로세스 에 대한 고찰참고문헌 waitpid(2), wait(2), fork(2), 시스템프로그래밍( www.joinc.co.kr 요약하자면, 자식 프로세스가 종료되었음에도 부모 프로세스에서 이에 대한 정보를 회수하지 않은 상태. 자식 프로세스가 return을 하든 exit을 하든 그것에 대한 자원은 모두 해제된다. 메모리나 CPU 등... 그러나 pcb(=task_struct)는 여전히 커널에 남아있게 된다. 부모 프로세스가 이를 필요로 할 수도 있기 때문이다. 부모 프로세스가 종료.. 2022. 8. 8.