반응형 Computer Science86 Semaphore (세마포) 세마포는 네덜란드 수학자 Dijkstra가 만든 동기화를 위한 도구로, Semaphore S는 정수형 변수로 취급됩니다. 단, S는 wait 연산과 signal 연산으로만 접근이 가능합니다. 여기서 wait 연산과 signal 연산은 단위 연산이므로, 원자성이 보장됩니다. EX) wait(S) { while(S 2024. 1. 22. Critical Section (임계구역) 임계구역이란, 공유 데이터를 액세스하는 코드 부분을 의미합니다. EX) while(count == N); buffer(in) = next_produced; in = (in + 1) % N; count += 1; // 해당 부분이 임계구역에 해당 . . . while(count == 0); next_consumed = buffer(out); out = (out + 1) % N; count -= 1; // 해당 부분이 임계구역에 해당 임계구역에 해당하는 부분의 코드를 어셈블리어로 볼때 다음처럼 분리됩니다. reg1 = count; reg1 = reg1 + 1; count = reg1; reg2 = count; reg2 = reg2 - 1; count = reg2; 위 코드는 원자성이 보장되지 않으므로, 동시.. 2024. 1. 19. 스레드 운영체제에서 스레드는 Light Weight Process로, 기존의 Process인 Heavy Weight Process는 프로그램 3개를 실행했을 때, PCB 또한 3개가 생성됐습니다. 따라서, 이름 그대로 무겁게 돌아갔었는데, 스레드를 활용하면 하나의 Task로 프로그램 여러개를 돌릴 수 있습니다. 이러한 특성때문에 기존의 Heavy Weight Process는 앞선 포스트에서 서술했던 Memory Protection Error를 방지하기 위해 순차적 실행이 필수였습니다. 하지만, 스레드를 사용하면, 하나의 Task를 여러 프로그램이 공유하기 때문에, 동시에 실행이 가능합니다. 즉, 병렬처리가 가능해 집니다. 하지만, Protection이 제공되지 않습니다. (병렬처리 설계 시 Memory Prot.. 2024. 1. 19. CPU Scheduling Algorithm CPU 스케줄링 알고리즘은 여러 프로그램이 실행됐을 때, 프로그램이 유휴상태에 들어가 CPU가 대기하는 동안 다른 프로그램을 실행하는데 실행할 프로그램을 선택하는 방법입니다. CPU 스케줄링 알고리즘에는 여러 방법이 있는데 대표적으로 다음 방법들이 있습니다. FCFS (First Come First Service) SJF (Shortest Job First) Priority Round - Robin Multi Level Queue Multi Level Feedback Queue 각 알고리즘에서 CPU Burst Time과 Turn Around Time을 통해 성능평가를 하여 최적의 알고리즘을 선택합니다. (Cpu burst time = Cpu 사용 시간, Turn Around Time = Cpu 사용시간.. 2024. 1. 18. 이전 1 ··· 4 5 6 7 8 9 10 ··· 22 다음 반응형