ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [정보보안기사] 운영체제 이해 및 관리(3) - 프로세스
    휴지통 2019. 7. 13. 00:14

    이제 운영체제의 주요 구성 기술들에 대해서 자세히 살펴보도록 하겠다.

    우선 프로세스이다.

     

    프로세스(Process)

    프로세스는 실행 중인 프로그램을 뜻하며 프로세서는 그것을 관리하는 녀석을 말한다.

    프로세스는 일반적으로 스택, 데이터 섹션, 힙 등을 포함한다.

    프로세스는 PCB를 가지고 있는데 이 PCB라는 것도 알아둬야하는 중요한 개념이다.

     

    PCB(Process Control Block, 프로세스 제어 블록)

    : OS가 프로세스에 대한 중요한 정보를 저장해 놓을 수 있는 저장 장소로서 프로세스의 현재 상태, 프로세스 고유 식별자, 프로세스의 우선순위, 프로세스가 적재된 기억장치 부분을 가리킨 포인터 등의 정보를 담고 있다. PCB가 프로세스의 중요한 정보를 포함하고 있기 때문에, 일반 사용자가 접근하지 못하도록 보호된 메모리 영역 안에 남는다. 일부 운영 체제에서 PCB는 커널 스택의 처음에 위치한다. 

    프로세스 디스크립터라고도 하며 모든 프로세스는 각자 고유의 프로세스 디스크립터(PCB)를 소유한다.

    운영체제가 CPU를 다른 프로세스에 넘겨주려 할 때 프로세스에 관한 모든 정보를 PCB에 저장시키고 다시 실행하고자 할 때 저장했던 PCB를 재사용한다.

    그렇다면 정확하게 PCB는 어떠한 정보 테이블이 담겨있을까?

    PCB에는 프로세스 상태, 프로그램 카운터, CPU 레지스터, CPU 스케쥴링 정보, 메모리 관리 정보, 회계 정보, 입출력 상태 정보 등이 담겨있다.

     

    그럼 이제 프로세스의 상태에 대해서 알아보자.

     

    1. 보류(pending)  :  작업이 일시중지되거나 디스크에 수록된 상태

    2. 준비(ready) : CPU를 사용할 수 있는 상태

    3. 실행(running) : 프로세스가 CPU를 차지하고 있는 상태(즉, CPU에서 프로세스를 수행하고 있는 상태)

    4. 대기(blocked) : 프로세스가 CPU를 차지하고 실행되다 입출력 처리와 같은 이벤트가 발생하면 CPU를 양도하여 입출력 처리가 끝날 때 까지 대기 큐에서 대기하는 상태

    5. 완료(terminated) : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태. 프로세스가 종료되면 시스템에서 제거되고 관련 PCB도 사라진다.

     

    프로세스의 상태가 변화는 것을 상태 전이라고 말하는데 디스패치(Dispatch), 할당시간 초과(Time Run out), 대기(Block), 깨움(Wake Up)등이 존재한다.

    이름만 불어도 대충 감이 오게 생긴게 정의한 사람이 작명센스가 좋은 것 같다.

    디스패치 - 준비 상태 -> 실행 상태

    준비 상태에 있던 프로세스 중에 가장 우선순위가 높은 프로세스를 CPU에 할당시켜 실행 상태로 변경 시킨다.

     

    할당시간 초과 - 실행 상태 -> 준비 상태

    할당시간이 초과했으니 당연히 실행상태에 있던 녀석이 준비상태로 돌아갈 것이다.......

    CPU의 지정된 할당시간을 모두 사용하게 되면 다음 프로세스를 위해 실행했던 프로세스를 준비 상태로 되돌린다.

     

    대기 - 실행 상태 -> 대기상태

    말그대로 대기를 위해 실행상태를 대기로 바꾼다

    실행중이던 프로세스가 입출력 명령을 만나 인터럽트가 발생하게되어 대기상태로 전환된다.

     

    *인터럽트 : 프로세서에서 인터럽트란 마이크로프로세서(CPU)가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 말한다.

     

    깨움 - 대기 상태 -> 준비 상태

    한마디로 자고있던 상태를 깨워서 준비시키는 상태 전이로 입출력 완료 신호가 들어오면 아까까지 대기하던 프로세스를 준비 상태로 전환시킨다.

    댓글

Designed by Tistory.