CS/컴퓨터 구조

[컴퓨터 구조](23)[프로세스]

황올뱀 2025. 2. 28. 18:39

프로세스: 실행중인 프로그램의 동적인 실행 단위
(즉, 실행중인 프로그램을 운영체제가 추상화한 것)
(프로세스는 프로그램, 프로세서와는 다르다.)
    프로그램: 코드와 데이터가 저장된 파일
    프로세서: CPU <- 하드웨어

 

프로세스 상태
    실행: 프로세서가 프로세스를 실행중인 상태
    준비: 실행할 준비는 되었지만, 아직 운영체제에서는 실행 안된 상태
    차단: 특정 작업을 수행해서 다른 이벤트가 발생하기 전까지 준비가 되지 않은 상태
    - 상태 변화
        준비 -> 실행: 프로세스가 스케줄링됨
        실행 -> 준비: 프로세스 스케줄 취소
        차단 -> 준비: 일시적으로 차단되었다가 준비 상태로 복귀

(컴퓨터 구조 9 참고)
프로세스 추상화

  • 논리적 제어 흐름: 각 프로세스마다 CPU를 독점하는 것 같게 만듬 (문맥 전환 등)
  • 사적 주소 공간: 메인 메모리를 독점적으로 사용하는 것 같게 만듬 (가상 메모리 등)

멀티프로세싱: 여러개의 프로세스를 한번에 돌리기

 

  • 전통적인 멀티프로세싱: 단일 프로세서가 여러 프로세스를 실행
        현재 레지스터 상태 메모리에 저장
        다음 실행 프로세스 예약
        문맥 전환: 다음 실행 프로세스의 레지스터 로드 및 주소 공간 전환
        프로그램 실행
        반복...
  • 현대의 멀티프로세싱: 실제로 프로세서가 여러개라 동시에 프로세스 실행
        커널에 의해 각 프로세스 스케줄링됨
728x90
반응형