제2장 프로세스 200812120 이나현
프로세스 정의 커널에 등록되어 커널의 관리하에 있는 작업 → 일반적으로 주기억장치에서 실행중인 프로그램 프로세스 관리 블록(PCB; Process Control Block) 을 할당 받는 개체 ※ PCB란? 커널에 등록된 각 프로세서들에 대한 정보 를 저장하고 있는 커널 영역을 말한다.
프로세스의 종류 운영체제 프로세스 역할 : 실행순서 제어, 커널 영역 침범 방지, 사용자 프로세서 생성, 입출력 프로세서 생성 역할 : 실행순서 제어, 커널 영역 침범 방지, 사용자 프로세서 생성, 입출력 프로세서 생성 사용자 프로세스 역할 : 사용자 프로그램, 데이터 코드 실행 병행 프로세스 역할 : 여러 프로세서 동시 수행 상태 점검 독립 프로세스 역할 : 다른 프로세서로부터 영향을 주지 않거나 영향을 받지 않도록 하는 것 협동 프로세스 역할 : 하나의 프로세서가 다른 프로세서에 영향을 주거나 영향을 받는 프로세서이다.
프로세스 관리 블록(PCB) PCB(Process Control Block) 란? 커널에 등록된 각 프로세스들에 대한 정보를 저장하는 영역 커널 공간(kernel space)내에 존재 OS는 PCB의 정보를 사용하여 프로세스를 관리
프로세스 관리 블록(PCB) PCB에 저장되는 정보 프로세스 고유번호 (PID : Process Identification) 프로세스 우선순위 (priority) 우선순위-기반 스케줄링시 필요한 정보 프로세스 현재 상태 (current state) 프로세스가 할당받은 자원들의 리스트 또는 이들에 대 한 포인터 문맥 저장 영역 (context save area) 실행중인 프로세스의 일시 중지시 레지스터 문맥의 저장 영역 PCB 에 저장되어야 할 정보는 운영체제에 따라 서로 다름 커널의 PCB 영역 참조 및 갱신 속도 개선은 시스템 전체 성능에 중요함
프로세스 상태 전이도
프로세스 상태
프로세스 상태 전이 실행(running) 준비(ready) 보류(block) 교착상태(Deadlock) dispatch : ready → running 준비 상태에 있는 프로세스 중에서 우선 순위가 높은 프로세스를 선택하여 할당하는 것 timerrunout : running → ready 프로세스의 할당 시간이 완료되면 실행상태의 프로세스는 준비 상태로 전이되는 것 block : running → blocked 실행중인 프로세스가 자신의 입출력 명령을 수행하기 위해 프로세스를 반납하고 입출력 완료 신호가 올 때까지 대기 상태로 전이 되는 것 wakeup : blocked → ready 대기중인 프로세스가 입출력 완료 신호가 올 때까지 대기 상태로 전이되는 것.
인터럽트와 문맥 교환 인터럽트(Interrupt)란 컴퓨터 시스템에서 예측하지 못했던 사건이 발생하는 상황을 말한다. 인터럽트의 일반적인 종류 입출력 인터럽트(I/O interrupt) 클럭 인터럽트(clock interrupt) 콘솔 인터럽트(console interrupt) 프로세스간 통신 인터럽트(interprocess communication interrupt) 시스템 호출 인터럽트(system call interrupt, SVC interrupt) 프로그램 오류 인터럽트(program check interrupt) 하드웨어 검사 인터럽트(machine check interrupt
인터럽트 처리 과정
문맥 보존 및 문맥 교환 문맥의 의미 특정 프로세스와 관련된 정보들의 총집합 문맥보존 실행중인 프로세스의 레지스터 문맥 보존을 위하여 저장하는 일 문맥 재적재 기존에 저장되었던 문맥을 프로세서로 다시 이동시키는 일 문맥 교환 한 프로세스의 문맥을 저장하고 그의 실행을 중지시킨 후 다른 프로세스의 문맥을 재적재하여 실행 시키는 경우 → 문맥 교환이란 실행 상태의 프로세스를 다른 프로세스로 교체하기 위하여 글들의 문맥을 각각 저장하고 재적재하는 경우를 의미