운영체제(OS)와 컴퓨터 시스템 2 - CPU

CPU

os가 프로그램을 실행하는 구조

os가 프로그램을 실행 

하드디스크 안의 프로그램을 메모리로 읽어들인 후 실행

메모리에 할당된 프로그램 '프로세스'라고 일컬음

 

프로세스 상태 : 실행 상태, 실행 가능 상태, 대기 상태

      cpu에 할당되어 실행 중인 상태가 실행 상태.

우선순위가 높은 프로세스에 의해 인터럽트(중단) 처리되기도 함.

 

멀티태스킹

태스트(Task) : os가 cpu에 의뢰하는 작업 단위

멀티태스킹 : 여러 개의 태스크를 동시에 처리하는 행위 

  스케줄링을 통해 순서대로 처리하는 것; 빠른 전환으로 인해 동시에 수행되는 것처럼 보임

 

프로세스가 메모리와 같은 공유 자원을 이용할 때는 영향이 가지 않도록 잠금(Lock)이 일어나기도 함.

이 경우, 양 쪽 프로세스 모두 계속해서 대기 상태에 빠지는 데드락이 발생할 수 있음.

 

프로세스 제어

- 프로그램 상태어 (PSW : Program Status Word)

cpu 속 레지스터에 인퍼럽트로 중단된 프로그램 상태나 연산의 종료 상태를 저장.

- 프로세스 제어 블럭 (PCB : Process Control Block)

각 프로세스의 CPU상태(컨텍스트)나 프로세스의 상태를 제어해두는 메모리 영역.

- 컨텍스트 스위치

인터럽트로 인해 프로세스를 전환할 때 os가 컨텍스트를 PCB에 저장하고 복원하는 것

 

프로세스 동기

배타 제어 : 처리가 끝날 때까지 하나의 프로세스에게 자원을 독점시켜 일관성을 유지.

세마포: 정해진 수 이상의 프로세스가 공유 자원에 동시 접근하지 않도록 카운터를 이용해 제어하는 장치.

무한정 대기 상태 데드락 피하기 -> 세마포와 뮤텍스(세마포 카운터 1)

여러 개의 프로세스에 의한 공유 자원 경쟁이 없어짐; 배타 제어

 

프로세스 통신

메시지 큐 : os의 메시지 기능을 통해 1대1 통신

파이프 : 여러 개의 프로세스 입출력을 연결하는 장치. 일방향.

 

공유 메모리와 스레드

공유 메모리 : 여러 개의 프로세스에서 공통으로 사용할 수 있는 메모리 영역.

스레드  : 프로세스 안의 프로그램 실행의 흐름.

     스레드끼리는 같은 메모리 공간 참조

멀티 스레드 : 여러 스레드 동시 실행

 

 

<도서 정리> OS가 보이는 그림책 - ANK Co., Ltd. 저 | 이영란 역

댓글을 작성해보세요.