Skip to content

Latest commit

 

History

History
179 lines (131 loc) · 11.7 KB

5장__프로세스 관리_1.md

File metadata and controls

179 lines (131 loc) · 11.7 KB

5장 프로세스 관리_1


5-1 🍂 프로세스의 개념 gaekim

  • 보기에서 알맞은 단어를 찾아 빈칸을 채우시오. (하나의 단어를 여러번 사용 가능)

    <보기>
    프로세스, 프로그램, 치맥, 문맥, 시분할, 공간분할, 게이머, 타이머, 하드웨어 문맥, 프로세스의 주소 공간, 커널상의 문맥, 코드, 데이터, 힙, 스택
    
  1. ____란 실행 중인 ____을 의미한다.
  2. 프로세스의 __은 프로세스가 현재 어떤 상태에서 수행되고 있는지 정확히 규명하기 위해 필요한 정보이다.
  3. 여러 프로세스가 함께 수행되는 ___ 시스템 환경에서는 ___ 인터럽트에 의해 짧은 시간 동안 CPU를 사용하고, 빼앗겼다가 다시 CPU를 획득하는 식으로 CPU 관리가 이루어진다.
  4. CPU를 다시 획득해서 명령 수행을 재개할 때, 이전에 어느 부분까지 명령을 수행했는지 정확한 재현을 해야 하는데, 이때 필요한 정보가 바로 프로세스의 __이다.
  5. 프로세스의 문맥은 하드웨어 문맥, 프로세스의 주소 공간, 커널상의 문맥 등 3가지로 분류된다. 이 중 _______은 CPU의 수행 상태를 나타내는 것으로, 프로그램 카운터 값과 각종 레지스터에 저장하고 있는 값들을 의미한다.
  6. 프로세스는 자기 자신만의 독자적인 주소 공간을 갖고 있는데, 이는 __, ___, __으로 구성된다.

📄 답지
  1. 프로세스(process)란 실행 중인 프로그램(program in execution)을 의미한다.

    프로세스는 잡(job)이라는 용어와 혼용해 사용하기도 한다.
    디스크에 실행파일 형태로 존재하던 프로그램이 메모리에 올라가서 실행되면, 비로소 생명력을 갖는 프로세스가 된다.

  2. 프로세스의 문맥은 프로세스가 현재 어떤 상태에서 수행되고 있는지 정확히 규명하기 위해 필요한 정보이다.

  3. 여러 프로세스가 함께 수행되는 시분할 시스템 환경에서는 타이머 인터럽트에 의해 짧은 시간 동안 CPU를 사용하고, 빼앗겼다가 다시 CPU를 획득하는 식으로 CPU 관리가 이루어진다.

  4. CPU를 다시 획득해서 명령 수행을 재개할 때, 이전에 어느 부분까지 명령을 수행했는지 정확한 재현을 해야 하는데, 이때 필요한 정보가 바로 프로세스의 문맥이다.

  5. 프로세스의 문맥은 하드웨어 문맥, 프로세스의 주소 공간, 커널상의 문맥 등 3가지로 분류된다. 이 중 하드웨어 문맥은 CPU의 수행 상태를 나타내는 것으로, 프로그램 카운터 값과 각종 레지스터에 저장하고 있는 값들을 의미한다.

    밑의 그림을 참고하기

  6. 프로세스는 자기 자신만의 독자적인 주소 공간을 갖고 있는데, 이는 코드, 데이터, 스택으로 구성된다.



5-2 🍂 프로세스의 상태  hylee

  1. 보기에서 알맞은 단어를 골라 프로세스의 상태 변화도를 채워주세요
dispatch, new, malloc, ready, running, Terminator, terminated, waiting(blocked)

운영체제_프로세스관리_문제

  1. 이렇게 프로세스의 상태를 구분하는 이유는? (서술형)
📄 답지
  1. 보기에서 알맞은 단어를 골라 프로세스의 상태 변화도를 채워주세요
dispatch, new, malloc, ready, running, Terminator, terminated, waiting(blocked)
  1. new 2) terminated 3) ready 4) running 5) waiting(blocked)

image

  1. 이렇게 프로세스의 상태를 구분하는 이유는? (서술형)

정답 : 컴퓨터의 자원을 효율적으로 관리하기 위해서



5-3 🍂 프로세스 제어 블록  yeha

아래 보기의 단어들을 활용하여 빈칸을 채워보세요.

(보기) 프로세스,프로세스 제어블록, CPU 레지스터,시스템, 데이터,CPU, 운영체제,프로그램, 자료구조,메모리,커널, 블록, 주소

  1. 프로세스 제어블록 (Process Control Block)이란 ______가 시스템 내의 ______ 들을 관리하기 위해 프로세스마다 유지하는 정보들을 담는 커널 내의 ______ 를 뜻한다.
  2. 프로세스 제어블록은 약간의 회계 (accounting) 정보와 함께 ______를 시작시키거나 다시 시작시키는 데 필요한 모든 데이터를 위한 저장소의 역할을 한다.
  3. 각 프로세스마다 ____________을 가지고 있다.
  4. 프로세스 제어블록을 구성하는 요소는 다음과 같다.
    • ______의 상태 (e.g. new, ready, running 등등)
    • 프로그램 카운터 값 (다음에 수행할 명령어의 ______)
    • ____________의 값 (CPU 연산을 위해 현 시점에 레지스터에 어떤 값을 저장하고 있는지 나타냄)
    • CPU 스케줄링 정보
    • ______관리 정보 (메모리 할당을 위해 필요한 정보)
    • 자원 사용 정보 (accounting information 회계 정보)
    • 입출력 상태 정보 (공룡책 p.122 에 조금 더 자세한 설명)
📄 답지

아래 보기의 단어들을 활용하여 빈칸을 채워보세요.

(보기) 프로세스,프로세스 제어블록, CPU 레지스터,시스템, 데이터,CPU, 운영체제,프로그램, 자료구조,메모리,커널, 블록, 주소

  1. 프로세스 제어블록 (Process Control Block)이란 운영체제가 시스템 내의 프로세스 들을 관리하기 위해 프로세스마다 유지하는 정보들을 담는 커널 내의 자료구조 를 뜻한다.

  2. 프로세스 제어블록은 약간의 회계 (accounting) 정보와 함께 프로세스를 시작시키거나 다시 시작시키는 데 필요한 모든 데이터를 위한 저장소의 역할을 한다.

  3. 각 프로세스마다 프로세스 제어블록을 가지고 있다.

  4. 프로세스 제어블록을 구성하는 요소는 다음과 같다.

    • 프로세스의 상태 (e.g. new, ready, running 등등)
    • 프로그램 카운터 값 (다음에 수행할 명령어의 주소)
    • CPU 레지스터의 값 (CPU 연산을 위해 현 시점에 레지스터에 어떤 값을 저장하고 있는지 나타냄)
    • CPU 스케줄링 정보
    • 메모리관리 정보 (메모리 할당을 위해 필요한 정보)
    • 자원 사용 정보 (accounting information 회계 정보)
    • 입출력 상태 정보

    (공룡책 p.122 에 조금 더 자세한 설명)



5-4 🍂 문맥교환  mihykim

Context Switching은 지원자의 기본기를 검사하기 위해 자주 등장하는 면접질문이자, CS 주요 기본지식이기도 합니다.

기술면접을 딱 하루 앞둔 jehong은 면접준비를 위해 Context Switching에 대해 반드시 언급해야할 내용을 아래와 같은 목차로 간추려 노션에 정리해보았습니다.

  • Context Switching 목적
  • Context Switching 과정
  • Context Switching 이 필요한 이유
  • Context Switching 이 발생하는 경우

jehong이 낮잠을 자던 중, 키도가 핸드폰을 마구 누르는 바람에 일부 자료가 지워지거나 변경되었습니다.

시간이 촉박한 jehong를 도와 자료를 바르게 정리해주세요!

1. Context Switching 목적

  • 하나의 프로세스가 CPU를 사용중인 상태에서               하기 위한 과정
    • ※ 따라서 CPU를 점유하는 프로세스가 다른 사용자 프로세스로 변경되는 과정이 아니라, 하나의 프로세스의 실행모드만이 잠시 사용자모드에서 ㅇㅇㅇㅇ로 바뀌는 것일 뿐인 모드변경은 Context Switching 이라고 하지 않음.

2. Context Switching 과정

  • 이전의 프로세스의 Context를 ㅇㅇ하고, 새로운 프로세스의 Context를 ㅇㅇ하는 작업

3. Context Switching 이 필요한 이유

  • 하나의 프로세스를 쭉 실행하는 것과 비교했을 때 Context Switching을 하면 많은 ㅇㅇㅇㅇ가 뒤따름 (Context Switching 동안 에는 해당 CPU는 아무것도 못함)
    • ㅇㅇㅇㅇ: 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등
  • 하지만 빠른 속도로 Task를 바꿔가며 실행하면 사용자 입장에서는 여러 프로세스가 동시에 처리되는 것처럼 느끼게 되는 장점이 있기 때문에 필요함.
  • 이처럼 여러 프로세스가 함께 수행되는 ㅇㅇㅇ 시스템 환경에서는 ㅇㅇㅇ 인터럽트에 의해 짧은 시간동안 CPU를 사용한 후 빼앗겼다가 추후에 다시 CPU를 획득하는 식으로 CPU 관리가 이루어지므로, CPU를 뺏기기 직전 어느 부분까지 ㅇㅇ을 수행했는지 정확한 상태를 재현할 필요가 있음

4. Context Switching 이 발생하는 경우

  • 예시1)             
  • 예시2)             
📄 답지

1. Context Switching 목적

  • 하나의 프로세스가 CPU를 사용중인 상태에서 다른 프로세스에게 CPU 제어권을 이양하기 위한 과정
    • ※ 따라서 CPU를 점유하는 프로세스가 다른 사용자 프로세스로 변경되는 과정이 아니라, 하나의 프로세스의 실행모드만이 잠시 사용자모드에서 커널모드로 바뀌는 것일 뿐인 모드변경은 문맥교환이라고 하지 않음

2. Context Switching 과정

  • 이전의 프로세스의 Context를 저장(보관)하고, 새로운 프로세스의 Context를 복원(적재)하는 작업

3. Context Switching 이 필요한 이유

  • 하나의 프로세스를 쭉 실행하는 것과 비교했을 때 Context Switching을 하면 많은 오버헤드가 뒤따름 (Context Switching 동안 에는 해당 CPU는 아무것도 못함)
    • 오버헤드: 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등
  • 하지만 빠른 속도로 Task를 바꿔가며 실행하면 사용자 입장에서는 여러 프로세스가 동시에 처리되는 것처럼 느끼게 되는 장점이 있기 때문에 필요함.
  • 이처럼 여러 프로세스가 함께 수행되는 시분할 시스템 환경에서는 타이머 인터럽트에 의해 짧은 시간동안 CPU를 사용한 후 빼앗겼다가 추후에 다시 CPU를 획득하는 식으로 CPU 관리가 이루어지므로, CPU를 뺏기기 직전 어느 부분까지 명령을 수행했는지 정확한 상태를 재현할 필요가 있음

4. Context Switching 이 발생하는 경우

  • 예시1) timer interrupt (CPU 사용시간이 만료 되었을 때)
  • 예시2) I/O request (입출력 요청할 때)
  • 예시3) fork a child (자식 프로세스를 만들 때)
  • 예시4) wait for an interrupt (인터럽트 처리를 기다릴 때)