반응형
1. 프로그램과 프로세스
- 프로그램
- 하드디스크 등과 같은 저장장치에 저장된 명령문의 집합체, 앱,.exe…
- 프로세스
- 실행중인 프로그램, 하드디스크에 저장된 프로그램이 메모리에 올라갔을 떄 실행중인 프로그램
2. 멀티프로그래밍과 멀티프로세싱
- 유닛프로그래밍
- 메모리에 하나의 프로세스가 올라온 것
- 멀티 프로그래밍
- 메모리에 여러개의 프로세스가 올라온 것
- 멀티 프로세싱
- 유닛 프로그래밍과 멀티 프로그래밍 > 메모리관점
- 멀티프로세싱은 cpu관점
- cpu가 여러 개의 프로세스를 처리하는 것
- 스와핑
- 메모리에 있는 데이터를 다른 저장장치로 보내고 다른 저장장치에서 메모리에 올리는 것
3. PCB
- 프로세스가 만들어지면 운영체제는 해당 프로세스의 정보를 가지고 pcb를 만든다
- 연결리스트 자료구조로 저장
- 포인터
- 부모와 자식 프로세스에 대한 포인터와 할당된 자원, 프로세스한 상태에서 다른 상태로 전환될 떄 저장하는 포인터
- 프로세스 상태
- 현재 프로세스의 생성, 준비, 실행, 대기, 완료 나타냄
- 프로세스 아이디
- 프로세스를 식별하기 위한 숫자
- 프로세스 카운터
- 다음에 실행될 명령어의 주소를 포함하는 프로그램 카운터 저장
- 레지스터 정보
- 프로세스가 실행될 때 사용했던 레지스터 값들 저장
- 메모리 관련 정보
- 프로세스가 메모리에 있는 위치정보
- cpu스케줄링 정보
- cpu 스케줄링에 필요한 우선순위, 취종실행시간, cpu 점유시간 저장
4. 프로세스 상태
- 생성, 준비, 실행, 대기, 완료
5. 컨텍스트 스위칭
- 프로세스를 실행하는 중에 다른 프로세스를 실행하기위해 실행중인 프로세스의 상태를 저장하고 다른 프로세스의 상태값으로 교체하는 작업
- 컨텍스트 스위칭이 발생하는 이유
- cpu 점유시간이 다 되거나 입출력 요청이 있거나 다른 종류의 인터럽트가 있을때
6. 쓰레드
- 코드, 데이터, 힙 영역이 복사 , 스택은 각각 가지고 있음
- 크롬
- 탭생성마다 프로세스가 생성
- 파이어폭스
- 4개까지만 프로세스가 생성되고 추가적인 탭은 쓰레드를 추가하는 방식
- 안정성
- 프로세스 : 서로 독립적이기 떄문에 하나의 프로세스가 문제가 있더라도 다른 프로세스가 영향을 받지 않음
- 쓰레드 : 하나의 프로세스 내에 존재하기 때문에 해당 프로세스 문제가 생기면 그 안의 모든 쓰레드에 문데가 생김
- 속도, 자원
- 프로세스 : 각각 프로세스는 서로 고유한 자원을 가지고 있음, 통신을 위해선 ipc를 이용해야해서 오버헤드가 크고 속도가 느림
- 쓰레드 : 한 프로세스 내에서 스택 제외 모두 공유하기 때문에 오버헤드가 작음
해당 글은 [인프런 - 그림으로 쉽게 배우는 운영체제] 강의를 듣고 정리한 글 입니다.
'🔥 🔥' 카테고리의 다른 글
[강의] 그림으로 쉽게 배우는 운영체제 - 3. 프로세스 동기화 (0) | 2024.05.23 |
---|---|
[강의] 그림으로 쉽게 배우는 운영체제 - 2. CPU 스케줄링 (0) | 2024.05.13 |
[강의] 그림으로 쉽게 배우는 운영체제 - 0. 운영체제 들어가기 (0) | 2024.05.13 |
yarn berry (0) | 2021.12.05 |
JavaScript 일급 객체 (first class citizen) (0) | 2021.04.14 |