블로그 이미지
LanSaid

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Recent Post

Recent Comment

Recent Trackback

Archive

2012. 3. 23. 16:15 Study/운영체제
가. 프로세스
 1. 프로세스의 개념
  *정의 : 실행중인 프로그램 / 프로그램(코드만 가지는 수동적인 개체)와 달리 메모리에 주소 공간을 갖는 능동적인 개체
    프로그램이 메모리에 적재되어 활성화 되면 프로세스가 된다.
  *구성 :
  1) 실행 스택 - 프로시저(함수)의 복귀주소, 지역변수를 저장 프로시저를 호출할수록 증가/ 프로시저를 반환할 수록 감소.
  2) 실행 힙 -
  3) 데이터(정적 변수)
  4) 텍스트(코드)

  *재진입 프로그램(재진입 코드)
   1) 메모리 내에 동일한 사본을 여러 사용자가 공유할 수 있도록 작성된 프로그램 또는 루틴 ex> 데이터베이스, 문서 편집기 등

 2. 종류 (실행 유형에 따라 구분)
  1) 운영체제 프로세스
   - 커널 프로세스 혹은 시스템 프로세스라 불림
   - 실행 순서 제어, 프로세스가 타 사용자나 운영체제의 영역 침범을 감시
   - 시스템 운영에 필요한 작업 수행(ex> 프로세스 생성 등 
  2) 사용자 프로세스
   - 사용자 코드 수행
  3) 병행 프로세스
 
 3. 프로세스 상태
   * 구분
    1) 실행상태
     - 실행
     - 대기 혹은 보류
     - 준비
    2) 비실행상태

 4. 프로세스 상태 변화
  * 모든 프로세스는 준비, 실행, 대기(보류) 상태롸 변화 되며 실행 되는 과정을 반복
  * 운영체제는 프로세스 스케줄러를 이용하여 상태변화를 관리
  * 작업 스케쥴러
   1) 스풀러가 작업 선정 및 준비 리스트에 삽입
   2)  다중 프로그래밍의 정도를 결정하는 핵심 역할 수행
   3) 선정한 작업에 대한 프로세스의 생성에서 종료까지의 과정 수행을 위해 상태 변화를 일으킴(110p 그림 참조)
     - 실행 프로세스가 자발적으로 프로세
  * 준비=> 실행
   - 디스패치 : 준비 리스트 맨 앞에 있던 프로세스가 프로세서를 선택(배당되어 실행)하는 것
   - 시간 할당 : 프로세스가 프로세서를 계속 독점하는 것을 방지
  * 실행 => 준비
    - 프로세스가 프로세서를 점유한 상태 -> 실행 상태에 있음
    - 프로세스 독점을 방지하기 위해 인터럽트 클록을 둠
    - 특정 프로세스가 타임아웃시에도 반환하지 않으면 클록이 인터럽트를 밝생 -> 운영체제가 프로세서 제어권을 갖는다 -> 프로세스는 준비상태로 변화
      -> 그 다음 준비된 준비 리스트의 첫 프로세스가 준비->실행 상태로 변경.
   * 실행 => 대기(보류)
   * 대기(보류) => 준비

 5. 프로세스 제어 블록
  * 프로세스는 OS내에서 프로세스 제어 블록(PCB)으로 표현된다.
  * PCB는 작업 제어 블록이라고도 불리며, 프로세스를 관리하기 위해 유지되는 데이터 블록 또는 레코드의 데이터 구조.

 6. 프로세스 교환
  * 인터럽트, 트랩, 시스템 호출로 나타낸다.


나. 프로세스 관리
 1. 프로세스 생성
  * OS 또는 다른 응용 프로그램 요청에 의해 생성
 2. 프로세스 종료
  * 명령 실행 후 종료되고 os에 프로세스 삭제 요청
   1) 일괄 처리 환경 : 작업 종료 신호로 인터럽트 발생 혹은 시스템 호출로 중지 명령 전달, 프로세스 완료
   2) 대화형 환경 : 사용자가 로그오프 하거나 터미널을 닫을때 혹은 오류에 의해 프로세스 종료
   3) abort 시스템 호출 : 부모 프로세스만 호출가능하며 이는 권환 문자이다.
     - 부모 프로세스의 자식 프로세스 종료 이유
     - 연속 종료
   4) 종료하는 경우와 그 예

 3. 프로세스 제거

 4. 프로세스 중단과 재시작
  * 프로세스 중단(일시정지)
   1) 장애 발생
   2) 사용자가 직접 중단
   3) 시스템 부하로 인하여 몇 개를 중단
   4) 단일/다중 처리 시스템에 따른 차이
   - 단일 처리 시스템 : 프로세스 자신이 중단 시켜야함
   - 다중 처리 시스템 : 다른 프로세서에 의해서도 가능하지만, 다른 프로세서가 재시작을 시켜줘야함.

 5. 프로세스 우선순위 변경
  * PCB의 우선순위 값 변경 가능
   1) 준비리스트의 프로세스의 구분
    - 우선 순위가 낮은 프로세스 : 시간 할당량이 큼 (프로세서 중심 프로세스)
    - 우선 순위가 높은 프로세스 : 시간 할당량이 작음 (입출력 중심 프로세스)

 6. 문맥교환
  * 프로세스 교환
   1)
  * 인터럽트
   1) 현재 실행 중인 프로세스와 별도로 외부에서 발생되는 여러 이벤트에 의해 발생
   2) 제어가 인터럽트 처리 루틴으로 넘어간 후에도 기본 시스템 관리 작업을 처리, 인터럽트 형태에 따라 관련된 운영체제 루틴으로 분기
   3) ex> 입출력 인터럽트
            , 클록 인터럽트
  * 트랩
  * 문맥교환

posted by LanSaid