스케줄링은 다중 프로그래밍을 가능하게 하는 운영체제의 동작 기법이다. 단일프로세서에서는 한 번에 한 프로세스만 실행할 수 있으므로 프로세스가 CPU를 사용하지 않을 때에는 다른 프로세스를 실행하여 CPU의 효율을 높이는 것을 스케줄링을 통해 실현할 수 있다. 스케줄링 알고리즘에는 FIFO, SJF, 우선순위, MLQ 등이 있다. FIFO/FCFS 여러 알고리즘에 쓰이는 FIFO는 굉장히 유명하기 때문에 많은 사람들도 알고 있을 것이다. 먼저 들어온 프로세스를 먼저 처리하는 방식이다. 대표적으로 Queue가 있다. 먼저 들어온 프로세스를 먼저 처리하는 이 방식은 굉장히 직관적이나 중요한 작업을 먼저 처리할 수 없고, 대기시간이 길어질 수 있다. Real time 시스템에 부적합하다. SJF(Shortest..
정보보안기사/추가

뮤텍스와 세마포어에 대해 알아보기 전에 공유 자원에 관련된 것을 학습해야 될 필요가 있다. 프로그램의 실행 시간, 즉 계산 시간을 줄이기 위해 고안된 방법인 병렬 컴퓨터는 프로그램 내의 계산 영역을 여러 개로 나누어 각각에 대한 계산을 여러 프로세스들이 나누어 동시에 수행하는 병렬 처리를 수행한다. 하나에 한 작업만 수행하던 직렬 처리 방식에 비해 여러 프로세서가 동시에 계산을 수행하는 병렬 처리 방식은 실행시간을 크게 단축시켰다. 하지만 동시에 처리하다보니 이로 인한 문제가 생겼는데 둘 이상의 스레드가 동시에 접근하면 안되는 공유 불가능한 자원(이를 임계 구역/critical section이라고 함)에 대한 문제가 생긴 것이다. 이를 해결하기 위해 데이터를 한 번에 하나의 프로세스만 접근할 수 있도록 ..
TCP Timer에는 Retransmission(재전송) timer, Persistence(영속) timer, Keepalive timer, TIME-WAIT가 있다. Persistence timer 교착 상태(Deadlock)를 해결 혹은 방지하기 위해 사용되는 타이머이다. 수신자가 자신의 rwnd를 0으로 전송할 때, 송신자 측에서는 수신자 측의 버퍼에 공간이 생길 때까지(rwnd≠0) 데이터 송신을 멈춘다. 수신자가 자리가 생겨서 rwnd를 갱신하는 ack를 송신자 측에 보냈는데 그 ack가 유실된다면 송신자는 rwnd가 갱신될 때까지 기다리고 수신자 측은 송신자 측에서 데이터를 보내줄 때까지 기다리는 deadlock이 발생한다. persistence timer는 이를 방지하기 위해 주기적으로 특별..