메모리 안의 프로세스 구조
- stack: 임시 데이터(함수 호출, 로컬 변수 등)가 저장되는 영역
- heap: 코드에서 동적으로 생성되는 데이터가 저장되는 영역
- data: 전역 변수/초기화된 데이터가 저장되는 영역
- text(CODE): 컴파일된 소스 코드가 저장되는 영역
프로세스 상태 구조
Process Control Block(PCB)
PCB 는 특정 프로세스에 대한 중요한 정보를 저장 하고 있는 운영체제의 자료구조이다. 프로세스를 관리하기 위해 프로세스의 생성과 동시에 고유한 PCB 를 생성
PCB에 저장되는 정보
- 프로세스 식별자(Process ID, PID) : 프로세스 식별번호
- 프로세스 상태 : new, ready, running, waiting, terminated 등의 상태를 저장
- 프로그램 카운터 : 프로세스가 다음에 실행할 명령어의 주소
- CPU 레지스터
- CPU 스케쥴링 정보 : 프로세스의 우선순위, 스케줄 큐에 대한 포인터 등
- 메모리 관리 정보 : 페이지 테이블 또는 세그먼트 테이블 등과 같은 정보를 포함
- 입출력 상태 정보 : 프로세스에 할당된 입출력 장치들과 열린 파일 목록
- 어카운팅 정보 : 사용된 CPU 시간, 시간제한, 계정번호 등
컨텍스트 스위칭
운영체제의 스케줄러에 의해 스케줄링 된 프로세스를 실행하다 다른 프로세스를 실행할 때 발생하는 것으로 현재 실행 되는 PCB의 정보를 레지스터에 저장하고 새 프로세스인 PCB의 정보를 불러와 실행합니다 실행이 끝나면 다시 PCB 정보를 불러와 하던 일을 계속 하게 해줍니다.
1. 잦은 컨텍스트 스위칭은 성능 저하를 일으킨다.
2. 쓰레드는 PCB에 저장해야하는 내용이 적기 때문에 상대적으로 더 빠른 컨텍스트 스위칭이 가능하다.
IPC 두 가지 모델 1. shared memory 2. message passing
IPC는 프로세스 간 프로세스 통신을 말한다.
Shared memory는 프로세스 간 공유 메모리를 생성한다. 빠르지만 동기화 문제가 발생할 수 있다.
Message Passing은 커널에서 대신 전달하는 방식으로 메모리 보호를 해주며 동기화 문제 또한 해결해준다. 그러나 속도가 느리다는 단점이 있습니다.
'기술면접 > 운영체제' 카테고리의 다른 글
운영체제 6장 정리 동기화 Race Condition Mutex Lock Semaphore (0) | 2022.01.19 |
---|---|
운영체제 5장 정리 CPU 스케쥴링 (0) | 2022.01.19 |
운영체제 4장 정리 프로세스와 쓰레드 (0) | 2022.01.19 |
운영체제 2장 정리 Opreating System Architecture (0) | 2022.01.19 |
운영체제 1장 정리 인터럽트 (0) | 2022.01.19 |
댓글