컴퓨터 사이언스 (CS)/운영체제

04. 프로세스 문제풀이

한소희DE 2021. 6. 2. 18:27

프로세스의 생성 챕터를 이해하기 위해서는, 앞선 프로세스의 이해 포스팅을 읽는 것이 매우 중요하다!

따라서 만약 앞선 포스팅을 읽어보지 못했다면, 아래 링크를 참고해보면 좋을 것이다.

 

 

⬇ 이전 포스팅 링크

 

03. 프로세스의 이해 (上)

목차 1. 프로세스란? 2. 멀티 프로세스란? 3. 프로그램의 메모리(Address) 구조 4. 프로세스의 생명주기 5. 프로세스 관리방법 (PCB, Context Switch) 6. 프로세스 Tree 관계 (Child, Parent) 1. 프로세스란? 프..

eng-sohee.tistory.com

 

 

이번 시간에는, 앞선 프로세스의 전반적 내용과 관련된 퀴즈를 한번 풀어 볼 것이다.

 

 

 

목차

 

프로세스 문제 풀이

 

 

 


 

 

01. 프로세스 문제 풀이

문제 출처는 아래 링크 강의의 저자이신 주니온TV님의 문제의 일부다.

 

[무료] 운영체제 공룡책 강의 - 인프런 | 강의

운영체제의 기본 원리를 튼튼히 이해해야만 고급 프로그래밍 기술을 이해할 수 있습니다. 본 강의는 운영체제의 바이블이라 할 수 있는 공룡책에 대한 전공자 수준의 강의입니다., 운영체제의

www.inflearn.com

 

1. (빈칸 풀이) 프로세스의 메모리 레이아웃에서 ______ 섹션은 다음과 같은 메모리 영역입니다. 프로그램 실행 시간 동안 동적으로 할당됩니다. 

  • 정답: data. 프로그램 실행 동안 생성되는 데이터들을 저장하는 영역을 말한다.

2. 운영체제에서 프로세스의 상태에 대한 설명으로 가장 틀린 것은?

1) fork() 시스템 콜로 새로운 프로세스를 생성하면 항상 NEW 상태가 된다.

2) READY 상태에 있는 프로세스에 interrupt를 걸면 WAITING 상태로 천이해서 응답이 올 때까지 대기한다.

3) RUNNING 상태의 프로세스가 I/O 처리를 하면 event가 응답할 때까지 WAITING 상태로 천이한다.

4) RUNNING 상태의 프로세스가 time out(종료)이 되면 CPU 스케줄러는 READY 상태의 프로세스 하나를 dispatch 한다. 

  • 정답: 2. RUNNING 상태 프로세스에 interrupt를 걸면 READY로 넘어 가, 응답이 올 때까지 대기한다.

 

3. 다음 중 PCB(Process Control Block)에 저장해야 할 정보가 아닌 것은?

1) Program Counter 2) Instruction Register 3) Process State 4) Stack Pointer 5) BSS

  • 정답: BSS
  • Program Counter : 프로세스가 다음에 실행할 명령어의 주소. 명령 실행 마칠 때마다 1씩 증가함. 현재 어디서 무엇을 하는지 알아야 하기 때문에 중요함.
  • Intruction Register : CPU내에서 처리할 명령어나 연산에 사용할 값이나 연산 결과를 일시적으로 기억하는 장치
  • Process State : 현재 프로세스의 상태(Ready, New, Waiting, Terminated, Running)
  • Stack Pointer : 스택에 데이터가 채워진 위치를 가리키는 레지스터인 스택 포인터(SP)를 가짐. 스택 포인터가 가리키는 곳까지가 데이터가 채워진 영역이고, 그 이후부터 스택 끝까지는 비어있는 영역

4. Concurrency(동시성, 병행성)에 대한 설명으로 가장 틀린 것은?

1) multiprogramming은 동시에 여러 개의 프로그램을 메모리에 상주시키는 것을 말한다.

2) multitasking은 여러 개의 CPU Core에서 한순간에 여러 명령어를 여러 Core에서 동시에 실행하는 것을 말한다.

3) 시분할(time-sharing)은 여러 개의 프로세스가 하나의 CPU를 시간상으로 분할하여 사용하는 것 을 말한다.

4) multiprocessing은 CPU 자원을 효율적으로 사용하고, 사용자에 대한 응답 시간을 줄이는 목적으 로 사용한다

  • 정답: 2
  • multiprogramming : 동시에 여러 개의 프로그램을 메모리에 상주시키는 것
  • multiprocessing : Time Sharing 통해 동시에 여러 개의 프로세스를 실행시키는 것
  • multitasking : 다수의 Task(프로세스보다 보다 확장된 개념이라고 생각하시면 됩니다.)를 운영체제의 스케줄링에 의해 번갈아 가면서 수행하는 것

 

5. Context Switch(문맥 교환)에 대한 설명으로 가장 틀린 것은?

1) CPU 스케줄러가 프로세스에게 CPU를 배정해 주기 위해 문맥을 교환한다.

2) Context 정보는 Process Control Block에 저장하거나, PCB로부터 로드한다.

3) Context Switch는 interrupt 또는 system call에 의해 실행된다.

4) Context Switch의 대상이 되는 두 프로세스는 각각 RUNNING 상태, WAITING 상태에 있다.

 

  • 정답 : 4

 

 

.

.

.

 

지금까지 구글링을 통해 운영체제를 공부하고, 간간히 인강을 참고했지만 역시 나는 아날로그 책 파.

오늘 공부 끝마치고, 운영체제에 대해 이해는 대충 했지만 뭔가 겉핥기를 하는 것 같은 느낌이 들어, 서적을 구매했다.

 

내가 구매한 책은 한빛아카데미에서 출판된 '쉽게 배우는 운영체제'다.

 

쉽게 배우는 운영체제

컴퓨터 관련 학과 학생을 대상으로 운영체제의 구조와 원리를 설명한 책이다. 주요 개념은 일상생활의 사례를 통해 쉽게 이해하고, 개념 간의 관계는 다양한 그림과 표로 명확히 정리할 수 있다

www.aladin.co.kr

 

내가 이 책을 선택한 이유는 다음과 같다.

 

  1. 꼼꼼히 운영체제의 내용을 완전히 이해해보고 싶어, 꽤나 분량 있는 책을 선택했다.
  2. 위와 같은 이유로, 대학 전공 교재 중에서 선택했다.
  3. 번역본은 어색한 경우가 많아, 국내 저자가 쓴 책을 골랐다.
  4. 개인적으로 한빛아카데미한빛 아카데미 전공 교재를 사용했었던 경험이 있고, 가독성이 좋았기 때문에, 한빛 아카데미 책을 선택했다.
  5. 전공 서적이지만, 스스로 공부해도 어렵지 않은 책을 골랐다.
  6. 평이 좋은 책을 골랐다.

 

이 모든 조건에 부합하는 책이 바로 이 책이었다 !

차례와 리뷰를 살펴본 뒤, 망설임 없이 결제했다. (취준생에게 28,000원은 상당히 비싸게 느껴졌지만.. 하하)

 

열정 뿜뿜도 좋지만, 너무 의욕 앞서 나가지 않도록,

지금처럼 천천히 그리고 꾸준히 공부해 나아가야겠다.