TABA/운영체제
공룡책으로 운영체제를 정리한다. 목차는 다음과 같다. Ch.1Introductionhttps://yeondventure.tistory.com/44Ch.2Operating system structureshttps://yeondventure.tistory.com/45?category=1152586Ch.3Processhttps://yeondventure.tistory.com/46?category=1152586Ch.4Threads & Concurrencyhttps://yeondventure.tistory.com/47?category=1152586Ch.5CPU Schedulinghttps://yeondventure.tistory.com/48?category=1152586Ch.6Synchronization to..

프로세스는 동시에 실행될 수 있으며, 여러 개의 프로세스가 협력할 때는 프로세스 사이에 데이터가 동기화되지 않는 문제가 발생할 수 있다.해당 챕터에서는 1) Peterson’s Solution2) Mutex Locks3) 세마포어4) 식사하는 철학자 문제에 대해 알아본다. 임계구역 문제임계구역 문제는 프로세스들이 데이터를 협력적으로 공유하기 위해 자신들의 활동을 동기화할 때 사용할 수 있는 프로토콜을 설계하는 것이다.임계구역 문제에 대한 해결안은 다음 세가지 조건을 충족해야 한다.Mutual exclution (상호 배제): 이미 한 프로세스가 critical section에서 작업중일 때 다른 프로세스는 critical section에 진입해서는 안 된다.Progress (진행): critical se..
CPU 스케쥴링은 멀티프로그래밍의 기본이다.CPU 이용률을 최대화하는 것이 multi-programming의 목적이다. 스케쥴링 기법운영체제가 프로세스를 프로세서에 할당하는 것을 디스패치(Dispatch)라고 한다. 그리고 운영체제가 레디 큐에 있는 프로세스들 중에서 어떤 프로세스를 디스패치할 것인가 정하는 것이 프로세스 스케줄링(Process scheduling)이다.스케줄링 알고리즘에는 대표적으로 FCFS, SJF, SRF, RR 네 가지 방식이 있고, 알고리즘을 평가할 때는 수행 시간(Burst time)과 CPU 사용량(CPU utilization), 단위 시간 당 끝마친 프로세스의 수(Throughput), 하나의 프로세스가 레디 큐에서 대기한 시간부터 작업을 마칠 때까지 걸리는 시간(Turna..

스레드(Threads)란?- 프로세스의 작업 흐름- 하나의 프로세스가 한번에 하나의 작업만 수행하는 것은 싱글스레드, 하나의 프로세스가 동시에 여러 작업을 수행하는 것은 멀티스레드라고 한다.프로세스를 여러개 돌려도 되는데 굳이 스레드를 나누는 이유두 프로세스가 하나의 데이터를 공유하려면 메시지 패싱이나 공유 메모리 또는 파이프를 사용해야 하는데, 효율도 떨어지고 개발자가 구현, 관리하기도 번거롭다.프로세스 사이 컨텍스트 스위치가 계속 일어나면 성능 저하가 발생한다. 스레드 전환에도 컨텍스트 스위치가 일어나지만 속도가 더 빠르다.- 최소 CPU 점유 단위- 스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터, 그리고 스택으로 구성된다. 프로세스 생성 작업은 매우 많은 시간을 소비하고 많은 자원을 필..

프로세스란?- 실행 중인 프로그램이다.- 프로그램은 디스크에 존재하는 것이며 이것이 메모리에 로드되어 프로그램 카운터를 가지고 실행되면 프로세스가 된다. - 멀티태스킹 시스템에서 작업의 단위로 쓰인다.- 프로세스는 스택, 힙, 데이터, 텍스트 섹션들을 가지고 있다.- 프로세스는 실행되면서 그 상태가 변한다. 프로세스의 상태는 크게 5가지로 나눌 수 있다. PCB(Process Control Block)란?- 만약 2개의 프로세스 사이에서 CPU가 전환된다면 PCB에 상태를 저장하고, 읽어오면서 CPU를 전환한다.- PCBs는 프로세스 생성시 만들어지며 프로세스와 관련된 여러 정보를 가지고 있다. 프로세스 관리자에 의해 관리된다.- 저장하는 정보는 아래와 같다.더보기프로세스 상태 : 위에서 설명한 프로..