프로세스: 실행중인 프로그램의 동적인 실행 단위
(즉, 실행중인 프로그램을 운영체제가 추상화한 것)
(프로세스는 프로그램, 프로세서와는 다르다.)
프로그램: 코드와 데이터가 저장된 파일
프로세서: CPU <- 하드웨어
프로세스 상태
실행: 프로세서가 프로세스를 실행중인 상태
준비: 실행할 준비는 되었지만, 아직 운영체제에서는 실행 안된 상태
차단: 특정 작업을 수행해서 다른 이벤트가 발생하기 전까지 준비가 되지 않은 상태
- 상태 변화
준비 -> 실행: 프로세스가 스케줄링됨
실행 -> 준비: 프로세스 스케줄 취소
차단 -> 준비: 일시적으로 차단되었다가 준비 상태로 복귀
(컴퓨터 구조 9 참고)
프로세스 추상화
- 논리적 제어 흐름: 각 프로세스마다 CPU를 독점하는 것 같게 만듬 (문맥 전환 등)
- 사적 주소 공간: 메인 메모리를 독점적으로 사용하는 것 같게 만듬 (가상 메모리 등)
멀티프로세싱: 여러개의 프로세스를 한번에 돌리기
- 전통적인 멀티프로세싱: 단일 프로세서가 여러 프로세스를 실행
현재 레지스터 상태 메모리에 저장
다음 실행 프로세스 예약
문맥 전환: 다음 실행 프로세스의 레지스터 로드 및 주소 공간 전환
프로그램 실행
반복... - 현대의 멀티프로세싱: 실제로 프로세서가 여러개라 동시에 프로세스 실행
커널에 의해 각 프로세스 스케줄링됨
728x90
반응형
'CS > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조](25)[가상 메모리] (0) | 2025.03.04 |
---|---|
[컴퓨터 구조](24)[프로세스 생성 & 종료] (0) | 2025.03.03 |
[컴퓨터 구조](22)[제어흐름변경] (0) | 2025.02.27 |
[컴퓨터 구조](21)[ELF와 링커심볼] (0) | 2025.02.17 |
[컴퓨터 구조](20)[링킹] (0) | 2025.02.14 |