운영체제(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. 저 | 이영란 역
댓글을 작성해보세요.