공부기록
프로세스의 표현 본문
- 운영체제 제어 구조
- 운영체제 프로세스와 자원들을 관리하기 위해서 이들 각각에 대한 현재 상태를 나타내는 정보 필요
- 메모리 테이블
- 주기억장치와 가상메모리 모두의 자취(track)를 유지하기 위해 사용
- 주기억 장치의 일부는 OS를 위해 예약되어 있고, 나머지나 프로세스를 위한 공간이다.
- 프로세스들은 가상메모리, 스와핑 기법을 통해 보조기억장치내에 유지
- 메모리 테이블의 정보
- 프로세스에 할당된 주기억장치
- 프로세스에 할당된 보조기억장치
- 주기억장치와 가상메모리 블록들에 대한 보호 속성
- 특정 프로세스만이 특정 공유 메모리 영역에 접근할 수 있다는 속성
- 가상 메모리를 관리하기 위한 필요한 정보
- 입출력 테이블
- IO장치와, 시스템 채널 관리
- 파일 테이블
- 파일 존재여부, 파일의 위치, 상태, 등 기타 속성 관리
- 프로세스 테이블
- 현재 OS에 의해 관리되는 프로세스들의 목록
- 프로세스 제어 구조
- PCB (Process Controll Block)
- 프로세스에서 사용되는 속성들의 집합
- 프로세스 이미지
- 프로그램, 데이터, 스택, 속성들의 집합을 말한다.
- 구조
- 사용자 데이터 : 사용자 공간에서 수정가능한 부분, 프로그램 데이터와 사용자 스택영역, 수정될 수 있는 프로그램이 포함된다.
- 사용자 프로그램 : 수행 될 프로그램
- 시스템 스택 : 각 프로세스는 하나 이상의 시스템 스택을 가진다. 프로시저와 매개변수, 호출 주소(복귀주소)를 저장
- 프로세스 제어블록 : 프로세스를 제어하기 위해 OS가 필요로 하는 데이터
- 프로세스 속성
- 프로세스 제어블록에 있는 정보를 말한다.
- 프로세스 식별 : 프로세스를 유일하게 식별한다.
- 프로세스 식별자
- 부모 프로세스 식별자
- 사용자 식별자
- 처리기 상태 정보 : 프로세스가 재개될 때 인터럽트 이전의 레지스터 상태를 저장한다.
- 사용자가 사용가능한 레지스터 : 처리기가 User Mode에서 사용하는 레지스터
- 제어 레지스터 및 상태 레지스터
- Program Counter : 다음에 반입(fetch)할 명령어의 주소
- 조건 코드 : 가장 최근에 사용된 산술, 논리 연산의 결과
- 상태 정보 : 인터럽트 가능/ 불가 플래그들과 수행모드
- 스택 포인터 : 시스템 스택 포인터의 top 주소
- 프로세스 제어 정보 :OS가 프로세스를 제어하고 다른 실행중인 프로세스와 함께 실행하기 위한 정보
- 스케줄링과 상태정보
- 프로세스 상태
- 우선순위
- 스케줄링 관련 정보
- 이벤트 : 기다리고 있는 사건을 명시
- 자료구조화 : 스케줄링을 위해 프로세스들은 큐, 링, 등 다른 자료구조에 담긴다. 이러한 구조를 위해 PCB는 다른 프로세스들을 가리키는 포인터를 가질 수 있다.
- IPC 정보
- 프로세스 권한
- 접근할 수 있는 메모리 , 명령어, 시스템 유틸리티, 서비스
- 메모리 관리
- 가상메모리를 나타나내는 세그먼트, 페이지 테이블로의 포인터
- 자원의 소유권과 이용률
- 스케줄링과 상태정보
- PCB의 역할
- 프로세스를 식별한다.
- OS가 필요로 하는 프로세스의 모든 정보를 담는다. 이 정보를 이용하여 OS는 스케줄링, 자원할당, 인터럽트 처리, 성능 모니터링 및 분석을 할 수 있다.
- PCB (Process Controll Block)