목록운영체제 (4)
cgy12306
스케줄링은 다중 프로그래밍을 가능하게 하는 운영 체제의 동작 기법입니다. cpu 스케줄링 결정은 다음의 네가지 상황 하에서 발생할 수 있습니다. running → waiting running → ready waiting → ready terminated 1번과 4번에서 스케줄링이 발생하는 경우 비선점(nin-preemptive) 또는 협조적(cooperative)라고 합니다. 나머지 경우 선점(preemptive)라고 합니다. cpu 스케줄링 기능에 디스패처(dispatcher)도 포함되어 있습니다. 디스패처는 cpu의 제어를 단기 스케줄러가 선택한 프로세스에게 주는 모듈이며 아래와 같은 작업을 포함합니다. context switch 사용자 모드 전환 프로그램을 다시 시작하기 위해 사용자 프로그램의 적절..
쓰레드 레드는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 프로그램 흐름 단위를 말합니다. 스레드는 스레드 ID, 프로그램 카운터 ,레지스터 집합, 스택으로 구성됩니다. 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션, 운영체제 자원들을 공유합니다. 위의 그림은 단일 스레드와 다중 스레드 프로세스의 차이를 보여주고 있습니다. 다중 쓰레드 장점 응답성 자원 공유 경제성 규모 적응성 병행 실행(Concurrency)와 병렬 실행(Parallelism)의 차이 Concurrency 실행되는 것처럼 보이지만 실제로는 동시에 처리 되지 않고 번갈아가면서 여러개의 태스크를 조금씩 나눠서 실행 합니다. 한번에 달성되는 작업량이 증가됩니다. 싱글 코어와 멀티코어에서 가능합니다. Paralle..
프로세스 프로세스란 실행 중인 프로그램을 뜻합니다. 프로세스는 실행되면서 state가 변합니다. 프로세스의 상태는 부분적으로 그 프로세스의 현재의 활동에 따라서 정의됩니다. 프로세스는 아래의 상태들 중 하나에 있게 됩니다. new : 프로세스 생성 중인 상태 running : 명령어 실행 중인 상태 wating : 프로세스가 어떤 사건이 일어나기를 기다리는 상태 ready : 프로세스가 처리기에 할당되기를 기다리는 상태 terminated : 프로세스의 실행이 종료된 상태 프로세스 제어 블록(Process Control Block) PCB는 특정 프로세스와 연관된 여러 정보를 담고 있으며 아래의 정보들을 포함합니다. 프로세스 상태 : 상태는 new, ready, running, waiting, termi..
system call은 운영체제에 의해 사용 가능하게 된 서비스에 대한 인터페이스를 제공합니다. 일반적으로 system call은 c나 c++ 언어로 작성된 루틴 형태로 제공됩니다. 예를 들어 A라는 파일을 B라는 파일로 복사를 하려고 한다면 파일에 대한 이름을 얻어와야하고, 얻은 파일의 이름으로 파일을 열고, 파일을 읽어서 새로운 파일로 출력한 후 닫아주는 등 이런 행위를 해야하는데 이런 행동 하나하나가 system call을 사용하는 행위입니다. API는 OS에서 제공하는 기능을 제어할 수 있게 만든 인터페이스 입니다. API를 거쳐 system call을 하기 때문에 system call에 대해 자세히 알 필요가 없습니다. 또한 system call 대신 API를 사용하는 이유는 호환성과 syste..