컴구&운영체제

그림으로 배우는 구조와 원리 운영체제(구현회) 3장 연습문제 풀이

yejin72 2023. 4. 12. 14:01
728x90

1. 프로세스(process)를 바르게 설명한 것끼리 나열한 것은?

㉠ 실행 가능한 PCB가 있는 프로그램
㉡ 프로세서가 할당하는 개체로 디스패치가 가능한 단위
㉢ 목적 또는 결과에 따라 발생하는 사건들의 과정
㉣ 동기적 행위를 일으키는 주체

① ㉠,㉡,㉢

② ㉠,㉡,㉣

③ ㉠,㉢,㉣

④ ㉡,㉢,㉣

더보기

정답: ①, 프로세스는 비동기적 행위를 한다.

 

2.프로세스 제어 블록을 가지고, 현재 실행 중이거나 곧 실행 가능하고, 프로세서(CPU)를 할당받을 수 있는 프로그램으로 정의할 수 있는 것은?

① 작업 집합

② 세그먼테이션

③ 모니터

④ 프로세스

더보기

정답: ④, 프로세스(작업)에 관한 설명이다.

 

3. 프로세스의 정의로 적당하지 않은 것은?

① 하드웨어로 사용하는 입출력장치

② 실행 중인 프로그램

③ 운영체제에 프로세스 제어 블록의 존재로 명시되는 것

④ 프로세서를 할당하는 개체

더보기

정답: ①, 프로세스는 하드웨어가 아니며, 실행 중인 프로그램을 말한다.

 

04. 다음은 무엇을 정의한 것인가?

- 실행 중인 프로그램
- 비동기적 행위를 일으키는 주체
- 프로시저가 활동 중인 것
- PCB를 가진 프로그램

① process

② working set

③ monitor

④ semaphore

더보기

정답: ①, 프로세서(작업)에 대한 설명이다.

 

5. 프로세스(process)의 정의에 대한 설명 중 옳지 않은 것은?

① 동기적 행위를 일으키는 주체

② 실행 중인 프로그램

③ 프로시저가 활동 중인 것

④ 운영체제가 관리하는 실행 단위

더보기

정답: ①, 프로세스는 비동기적 행위를 한다.

 

6. 프로세스의 정의를 바르게 설명한 것끼리 나열한 것은?

㉠ 프로시저가 활동 중인 것
㉡ PCB를 가진 프로그램
㉢ 동기적 행위를 일으키는 존재
㉣ 프로세서를 할당하는 실체

① ㉠,㉡

② ㉠,㉣

③ ㉠,㉡,㉣

④ ㉠,㉡,㉢,㉣

더보기

정답:

㉢ 프로세스는 비동기적 행위를 한다.

 

7. 프로세스(process)에 대한 설명이 아닌 것은?

① 실행 가능한 PCB를 가진 프로그램

② 더 이상 계속할 수 없는 어떤 특정 사건을 기다리고 있는 상태

③ 프로세서가 할당하는 개체로 디스패치가 가능한 단위

④ 목적 또는 결과에 따라 발생되는 사건들의 과정

더보기

정답: ②, 더 이상 계속할 수 없는 어떤 특정 사건을 기다리고 있는 상태는 데드락이다.

 

8. 프로세스의 개념으로 거리가 먼 것은?

① 실행 중인 프로그램

② 프로세서에 할당되어 실행될 수 있는 개체

③ 프로그램이 활성화된 상태

④ 동시에 실행될 수 있는 프로그램의 집합

더보기

정답: ④, 프로세스는 동시에 실행될 수 없다.

 

9. 다음은 무엇을 정의한 것인가?

- 실행 중인 프로그램
- 커널에 등록하고 커널의 관리하에 있는 직업
- 각종 자원들을 요청하고 할당받을 수 있는 개체

① processor

② locality

③ process

④ page

더보기

정답: ③, 프로세스에 대한 설명이다.

 

10. 프로세스(process)에 대한 설명으로 옳지 않은 것은?

① 트랩 오류, 프로그램 요구, 입출력 인터럽트에 조치를 취한다.

② 비동기적 행위를 일으키는 주체로 정의할 수 있다.

③ 실행 중인 프로그램을 말한다.

④ 프로세스는 각종 자원을 요구한다.

더보기

정답: ①, 트랩 오류, 프로그램 요구, 입출력 인터럽트에 조치를 취하는 것은 운영체제의 역할이다.

 

11. 프로세스 상태 변화에 관련된 설명이다. 옳지 않은 것은?

① 준비 리스트에 있는 프로세스와 대기 상태에 있는 프로세스는 각각 우선순위가 주어진다.

② 준비 리스트에 있는 프로세스는 일정 시간이 지나면 실행 상태로 변한다.

③ 준비 리스트의 맨 앞에 있던 프로세스가 프로세서를 취하는 것을 디스패칭이라고 한다.

④ 대기(보류) 리스트에 있는 리스트는 프로세스 스스로가 아닌 외적 조건 떄문에 프로세스 상태 변화가 일어난다.

더보기

정답: ②, 준비 리스트에 있는 프로세스는 준비 큐에서 순차적으로 실행된다는 우선순위가 있지만, 대기 상태에 있는 프로세스는 요구된 이벤트 작업을 완료하면 다시 준비 상태가 되므로 우선순위가 없다.

 

12. 프로세스가 프로세서를 점유하는 상태는?

① 실행(running) 상태

② 준비(ready) 상태

③ 대기(보류, block) 상태

④ 깸(wake up) 상태

더보기

정답:

② 준비 상태는 프로세서를 할당받으려고 기다리는 상태이다.

③ 대기 상태는 입출력이나 입출력 대기 신호 발생을 기다리는 상태이다.

깸 상태는 대기 상태에서 입출력 작업을 끝낸 후 준비 상태로 돌아가는 것이다.

 

13. 하나의 프로세스가 시스템에 존재하는 동안 그 프로세스는 여러 상태를 거친다. 프로세스 상태 변화에 관련된 설명으로 옳지 않은 것은?

① 디스패칭(dispatching) : 준비 상태 -> 실행 상태

② 대기(보류) 상태(block) : 실행 상태 -> 대기(보류) 상태

③ 깸(wake up) : 대기 상태 -> 실행 상태

④ 할당 시간 종료(time out) : 실행 상태 -> 준비 상태

더보기

정답: ③, 깸 상태는 대기 상태 -> 준비 상태가 되는 것이다.

 

14. PCB(Process Control Block)에 대한 설명으로 틀린 것은?

① 각각의 프로세스에는 모두 PCB가 있다.

② PCB를 위한 공간은 시스템이 최대 수용할 수 있는 프로세스 수를 기본으로 하여 동작 공간을 할당한다.

③ 프로세스의 중요한 상태 정보가 들어 있다.

④ 프로세스를 소멸해도 해당 PCB는 제거하지 않는다.

더보기

정답: ④, 프로세스의 제거와 동시에 PCB도 제거된다.

 

15. PCB(Process Control Block)가 갖고 있는 정보가 아닌 것은?

① 할당되지 않은 주변장치의 상태 정보

② 프로세스의 현재 상태

③ 프로세스 고유 식별자

④ 스케줄링 및 프로세스의 우선순위

더보기

정답: ①, 할당되지 않은 주변장치의 상태 정보는 해당 프로세스와 관련이 없으므로 PCB가 가지고 있지 않다.

 

16.PCB(Process Control Block)가 포함하는 정보가 아닌 것은?

① 프로세스의 현 상태

② 중앙처리장치 레지스터 보관 장소

③ 할당된 자원에 대한 포인터

④ 프로세스의 사용 빈도

더보기

정답: ④, 프로세스의 사용 빈도는 PCB가 포함하는 정보가 아니다.

 

17. PCB에 대한 설명으로 옳지 않은 것은?

① PCB에는 프로세스 식별 번호, 프로세스 상태 정보, CPU 레지스터 정보 등이 수록되어 있다.

② 적절한 응답시간을 보장하므로 일괄 처리 시스템에 유용하다.

③ 운영체제가 프로세스를 관리하려고 필요한 정보를 수록한다.

④ Process Control Block을 의미한다.

더보기

정답: ②, PCB는 적절한 응답시간을 보장하는 역할을 하지 않는다.

 

18. PCB(Process Control Block)에 포함되는 정보가 아닌 것은?

① 프로세스의 현 상태

② 프로세스 고유 구별자

③ 프로세스의 우선순위

④ 파일 할당 테이블

더보기

정답: ④, 파일 할당 테이블은 PCB에 포함되는 정보가 아니다.

 

19. PCB(Process Control Block)에 포함되는 정보가 아닌 것은?

① 프로세스 처리기 종류

② 프로세스 현 상태

③ 프로세스 고유한 식별자

④ 프로세스 우선순위

더보기

정답: ①, 프로세스 처리기 종류는 PCB에 포함되는 정보가 아니다.

 

20. PCB(Process Control Block)가 가지고 있는 정보가 아닌 것은?

① 프로세스 상태

② 프로그램 카운터

③ 프로세스(처리기) 레지스터

④ 할당되지 않은 주변장치의 상태 정보

더보기

정답: ④, 할당되지 않은 주변장치의 상태 정보는 PCB가 가지고 있지 않다. 

 

21. 프로세스 제어 블록(Process Control Block)에 대한 설명 중 옳지 않은 것은?

① 프로세서의 현 상태와 우선순위를 알 수 있다.

② 프로세스에 할당된 자원 정보가 있다.

③ 부모 프로세스와 자식 프로세스는 프로세스 제어 블록을 공유한다.

④ 프로세스를 생성할 때마다 생성되며, 프로세스를 소멸해도 소멸되지 않는다.

더보기

정답: ③,

③ 부모 프로세스와 자식 프로세스는 일부 자원을 공유할 수는 있지만 별개의 프로세스이기 때문에 프로세스 제어 블록을 공유하지는 않는다.

④ 프로세스 제어 블록은 프로세스를 소멸할 때 같이 소멸된다.

 

22. 프로세스 제어 블록(Process Control Block)에 대한 설명으로 옳지 않은 것은?

① 프로세스에 할당된 자원 정보가 있다.

② 프로세스의 우선순위 정보가 있다.

③ 부모 프로세스와 자식 프로세스는 PCB를 공유한다

④ 프로세스의 현 상태를 알 수 있다.

더보기

정답: ③, 부모 프로세스와 자식 프로세스는 PCB를 공유하지 않는다.

 

23. 프로세스 제어 블록(Process Control Block)에 대한 옳은 설명으로만 짝지어진 것은?

㉠ 부모 프로세스와 자식 프로세스는 PCB를 공유한다.
㉡ 프로세스에 할당된 자원 정보가 있다.
㉢ 프로세스의 우선순위 정보가 있다.
㉣ 프로세스의 현 상태를 알 수 있다.

① ㉠,㉡

② ㉠,㉢,㉣

③ ㉡,㉢,㉣

④ ㉠,㉡,㉢,㉣

더보기

정답: ③, 부모 프로세스와 자식 프로세스는 PCB를 공유하지 않는다.

 

24. 다중 프로그래밍 환경에서 어떤 프로그램의 실행을 중단하고 다른 프로그램의 실행을 재개할때 그 프로그램의 재개에 필요한 환경으로 다시 설정하는 것으로, 운영체제에서 오버헤드의 큰 요인 중 하나로 작용한는 것은?

① 문맥 교환(context switching)

② 모니터(monitor)

③ 세마포(semaphore)

④ 디스패치(dispatch)

더보기

정답: ①, 문맥 교환에 대한 설명이다.

 

25. 다중 프로그래밍 시스템에서 운영체제가 프로세서를 할당하는 프로세스를 변경하려고 현재 프로세스를 사용하여 실행하는 프로세서의 상태 정보를 저장하며, 제어를 인터럽트 서비스 루틴에 넘기는 작업은?

① 세마포(semaphore)

② 모니터(monitor)

③ 상호배제(mutual exclusion)

④ 문맥 교환(context switching)

더보기

정답: ④, 문맥 교환에 대한 설명이다.

 

26. 다중 프로그래밍 시스템에서 CPU가 할당되는 프로세스를 변경하려고 현재 CPu를 사용하여 실행하는 프로세스의 상태 정보를 저장하며, 앞으로 실행될 프로세스의 상태 정보를 설정한 후 CPu를 할당하여 실행되도록 하는 것은?

① working set

② context switching

③ locality

④ thread

더보기

정답: ②, 문맥 교환에 대한 설명이다.

 

27. 특정 프로세서의 작업을 중단하여 CPU를 다른 프로세에 넘겨줄 때 이전 프로세서의 레지스터들을 저장하고, 실행될 프로세스의 레지스터를 시스템에 적재하는 작업은?

① dispatch

② wake up

③ context switching

④ suspended

더보기

정답: ③, 문맥 교환에 대한 설명이다.

 

28. 프로세스에서 실행의 개념만을 분리하여 제어의 흐름만 의미한다. 프로세스의 구성을 제어의 흐름 부분과 실행 환경 부분으로 나눌 때, 실행 부분을 담당하는 실행의 기본 단위가 되는 것은?

① working set

② PCB

③ 스레드(thread)

④ 세그먼트(segment)

더보기

정답: ③, 스레드에 대한 설명이다.

 

29. 프로세스 안에서 작업 단위로, 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위를 의미하는 것은?

① thread

② working set

③ semaphore

④ monitor

더보기

정답: ①, 스레드에 대한 설명이다.

 

30.스레드에 대한 설명으로 틀린 것은?

① 프로세스 내부에 포함되는 스레드는 공통적으로 접근 가능한 기억장치를 이용하여 효율적으로 통신한다.

② 스레드란 프로세스보다 더 작은 단위로, 다중 프로그래밍을 지원하는 시스템에서 CPU에 보내 실행하는 또 다른 단위를 의미한다.

③ 프로세스가 스레드 여러 개로 구성되어 있을 때, 프로세스 하나를 구성하고 있는 스레드 여러 개는 모두 공통적인 제어 흐름을 갖는다.

④ 상태는 하나의 연관된 스레드 집단이 기억장치나 파일과 같은 자원을 공유하여 절감할 수 있다.

더보기

정답: ③, 스레드들은 각기 다른 프로그램 카운터를 가져서 독립적인 제어 흐름을 갖는다.

 

31. 스레드에 대한 설명으로 틀린 것은?

① 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.

② 실행 환경을 공유하므로 기억장소의 낭비가 줄어든다.

③ 프로세스 하나에는 스레드가 한 개만 존재한다.

④ 프로세스 간 통신이 향상된다.

더보기

정답: ③, 프로세스는 단일 스레드뿐만 아니라 다중 스레드도 가질 수 있다.

 

32. 스레드(thread)에 대한 설명으로 옳지 않은 것은?

① 프로세스 내부에 포함되는 스레드는 공통적으로 접근 가능한 기억장치를 이용하여 효율적으로 통신한다.

② 다중 스레드 개념을 도입하면 자원의 중복 할당을 방지하고 훨씬 작은 자원만으로도 작업을 처리할 수 있다.

③ 프로세스 하나를 구성하고 있는 스레드 여러 개는 공통적인 제어 흐름을 가지며, 각종 레지스터 및 스택공간들은 모든 스레드가 공유한다.

④ 프로세스 하나를 스레드 여러 개로 생성하여 병행성을 증진 할 수 있다.

더보기

정답: ③, 스레드는 각기 다른 프로그램 카운터를 가져서 독립적인 제어 흐름을 가지며, 공동 프로세스의 힙, 전역 데이터, 코드 영역의 내용을 공유한다.

 

33. 스레드(thread)에 대한 설명으로 옳지 않은 것은?

① 프로세스 하나는 스레드 여러 개를 가질 수 없다.

② 커널 스레드는 운영체제를 이용하여 스레드를 운용한다.

③ 사용자 스레드는 사용자가 만든 라이브러리를 이용하여 스레드를 운용한다.

④ 스레드를 사용하여 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.

더보기

정답: ①, 프로세스는 단일 스레드뿐만 아니라 다중 스레드도 가질 수 있다.

 

34. 스레드에 대한 설명으로 거리가 먼 것은?

① 스레드 하나는 상태를 줄인 경량 프로세스라고도 한다.

② 프로세스 내부에 포함되는 스레드는 공통적으로 접근 가능한 기억장치를 이용하여 효율적으로 통신한다.

③ 스레드를 사용하면 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.

④ 프로세스 하나에는 스레드가 여러 개 있을 수 없다.

더보기

정답: ④, 프로세스는 단일 스레드뿐만 아니라 다중 스레드도 가질 수 있다.

 

35. 스레드에 대한 설명으로 옳지 않은 것은?

① 단일 프로세스를 다수의 스레드로 생성하여 병행성을 증진시킬 수 있다.

② 실행 환경을 공유하기에 기억장소의 낭비가 줄어든다.

③ 프로세스의 생성이나 문맥 교환 등 과부하를 줄여 운영체제 성능을 개선한다.

④ 사용자 수준의 스레드는 커널의 효율적인 서비스를 받을 수 있어 속도가 개선된다.

더보기

정답: ④, 사용자 수준의 스레드는 커널의 제어없이 스레드 라이브러리를 통해 관리되고, 이것은 커널로부터 서비스를 받는 것보다 속도가 더 빠르다.

 

36. 스레드에 대한 설명으로 옳지 않은 것은?

① 스레드는 하나의 프로세스 안에서 병행성을 증대시키는 메커니즘이다.

② 스레드는 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스(LWP - Light Weight Process)라고도 한다.

③ 스레드는 동일 프로세스 환경에서 서로 독립적인 다중 수행이 불가능하다.

④ 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할을 담당한다.

더보기

정답: ③, 스레드는 동일 프로세스 환경에서 서로 독입적인 다중 수행이 가능하다.

 

37. 스레드의 특징으로 옳지 않은 것은?

① 실행 환경을 공유하므로 기억장소의 낭비가 줄어든다.

② 프로세스 외부에 존재하는 스레드도 있다.

③ 프로세스 하나를 스레드 여러 개로 생성하여 병행성을 증진시킬 수 있다.

④ 프로세스 간 통신을 향상시킬 수 있다.

더보기

정답: ②, 스레드는 항상 프로세스 내부에 존재한다.

 

38. 프로세스를 사용자 관점과 시스템 관점으로 구분하여 설명하시오.

더보기

사용자 관점에서 프로세스는 주소 공간을 가지고 실행하는 프로그램이고, 시스템 관점에서 프로세스는 실행 중인 프로그램이다.

 

39. 메모리에 있는 프로세스 주소 공간의 구성 요소와 그 역할을 설명하시오.

더보기

프로세스는 메모리에 스택, 힙, 데이터, 코드 영역을 나누어 저장한다.

- 스택 영역은 지역변수, 매개변수 등의 데이터를 일시적으로 저장하는 영역이다.

- 힙 영역은 동적으로 메모리를 할당하고 해제할 수 있는 공간이다.

- 데이터 영역은 전역변수, 정적변수 등의 데이터를 저장한다.

- 코드 영역은 명령어들을 포함하는 메모리 또는 목적 파일에 있는 프로그램 영역이다.

 

40. 프로세스가 그림과 같이 3상태 사이를 각 화살표처럼 이동하는 원인을 간단히 설명하시오. 발생(이동)하지 않으면 N/A로 표시하시오.

더보기

1) 프로세서가 유휴 상태일 때, 준비 큐의 맨 앞에 있는 프로세스가 디스패처에 의해 프로세서에 할당되는 것이다.

2) 인터럽트 클록 시간이 끝난 프로세스는 실행 상태에서 준비 상태로 되돌아간다.

3) 요청되었던 외부 이벤트 혹은 입출력 신호를 해결하여 다시 준비 큐에 프로세스가 들어간다.

4) N/A

5) 외부 이벤트 혹은 입출력 신호가 발생하여 실행 중이던 프로세스가 대기 상태가 된다.

6) N/A

 

41. 프로세스 중단(서스펜드)과 재시작은 언제 발생하는가?

더보기

자원이 부족하거나, 처리해야 할 작업이 과도하게 많거나, 시스템에 장애가 발생한 경우 중단이 발생하며, 그 원인이 해결되었을 때 재시작된다.

 

42. 프로세스 제어 블록(PCB)에 저장하는 정보는?

더보기

프로세스 식별자, 프로세스 상태, 프로그램 카운터, 레지스터 정보, 프로세스 스케줄링 정보 등이 저장된다.

 

43. 프로세스에는 스레드가 하나 이상 있으며, 병렬로 수행된다. 스레드를 이용하면 얻는 이점을 기술하시오.

더보기

한 스레드가 진행되는 동안 사용자는 다른 스레드를 사용할 수 있으므로 응답성이 좋고, 동일 프로세스의 자원을 공유하므로 효율적으로 사용할 수 있고, 프로그램의 성능과 효율성을 높일 수 있다.

 

44. 프로세스의 3상태 변화 그림을 그리고, 각 상태를 간략하게 설명하시오.

더보기

프로세스는 준비, 대기, 실행 상태가 존재한다.

- 준비 상태: 프로세스가 생성된 후 메모리의 준비 큐에 존재하여 프로세서에게 할당되기를 기다리는 상태

- 대기 상태: 프로세스 실행 중 외부 이벤트 또는 입출력 작업이 요청되어 해당 작업을 처리하기 위해 들어가는 상태

- 실행 상태: 프로세스가 프로세서에게 할당받아 필요한 작업을 수행하는 상태

 

45. 사용자 수준 스레드와 커널 수준 스레드의 차이는? 그리고 각 구현 방법은 언제 더 효과적인가?

더보기

사용자 수준 스레드는 스레드 라이브러리를 생성하고 스레드가 그것으로 스케줄링되지만, 커널 수준 스레드는 커널에서 직접 스레드를 일대일로 스케줄링 한다.

사용자 수준 스레드는 스레드를 빠르게 생성 및 종료해야 하고 어떠한 운영체제 상태에서도 사용될 수 있을 정도로 이식성이 좋아야 하며 오버헤드를 적게 발생시키고 싶을 때 구현하면 효과적이다.

반면, 커널 수준 스레드는 스레드 별로 운영체제가 다중 처리를 해야 하며, 스레드 간 보호가 중요한 상황에서 효과적인 구현 방법이다.

 

46. 스레드를 생성할 때 사용하는 자원은? 이것은 프로세스를 생성할 때와 어떻게 다른가?

더보기

스레드는 스레드 실행 환경 정보, 지역 데이터, 스택으로 구성되어 생성된다.

프로세스는 코드, 힙, 데이터, 스택 영역을 가지고 생성되며 생성과 동시에 프로세스 제어 블록도 생성하지만 스레드는 스레드 제어 블록을 생성한다는 점에서 다르다.

 

47. 프로세스를 종료하는 과정을 예로 들어 설명하시오.

더보기

- 프로세스는 일괄 처리 환경에서는 인터럽트나 시스템 호출로, 대화형 환경에서는 사용자가 로그오프하거나 터미널을 닫을 때 종료된다.

- 부모 프로세스를 종료하면 자식 프로세스도 연달아서 종료되고 이를 연속 종료라고 한다.

- 자식 프로세스를 종료하는 경우에는 모든 명령어를 수행 완료했거나 자원이 부족할 때이다.

- abort 명령어를 통해 종료할 프로세스의 부모 프로세스를 호출할 수 있고, exit 명령어를 통해 프로세스를 종료할 수 있고, wait 명령어를 통해 자식 프로세스의 종료를 기다릴 수 있다.

 

48. 인터럽트와 트랩의 차이를 설명하시오.

더보기

인터럽트는 하드웨어에 의해 발생하고, 트랩은 소프트웨어에 의해 발생한다.

 

49. 문맥 교환과 발생하는 시기를 기술하시오.

더보기

문맥 교환은 프로세스 실행 도중 다른 프로세스의 처리가 요청되어 현재 실행하던 프로세스의 PCB에 레지스터 상태 코드를 저장하고, 다른 프로세스의 PCB 내용을 불러와 실행하는 것이다.

입출력 인터럽트 혹은 클록 인터럽트가 발생했을 때 문맥 교환을 실행한다.

 

50. 사용자 수준 스레드의 장단점을 설명하시오.

더보기

장점: 다른 운영체제에서도 유연하게 사용될 수 있어 이식성이 좋다, 커널을 호출하지 않아도 되어 오버헤드가 적다, 스레드 라이브러리로 관리되기 때문에 유연하게 스케줄링될 수 있다.

단점: 스레드를 병령로 다중 처리할 수 없다, 확장이 어렵다, 스레드 간 보호가 어렵다.

 

51. 마이크로 커널 구조 운영체제를 설명하고, 장단점을 기술하시오.

더보기

마이크로 커널 구조 운영체제는 커널 영역에 있던 핵심 기능을 제외한 대부분을 사용자 영역으로 옮긴 것이다.

장점: 서버의 한 기능에 오류가 발생하더라도 동일 영역 다른 기능들에까지 심각한 문제로 확장되지 않는다, 사용자가 서버를 수정 및 관리하기에 더 좋다

단점: 모듈 간의 통신을 빈번하게 하면 성능이 떨질 수 있다, 커널 출입 시의 문맥 교환 때문에 속도가 느리다.

 

52. 동일한 프로세스의 스레드 사이에서 ① 스택 ② 데이터 세그먼트 ③ 힙 중 무엇을 공유하는가?

더보기

전역 데이터(②)와 힙(③)을 공유한다.

 

53. 프로세스 제어 블록(PCB)의 목적과 운영체제는 언제 업데이트하고 판독(read)하는가?

더보기

프로세스 제어 블록의 목적은 프로세스에 대한 정보들을 저장함으로써 프로세서에 프로세스가 할당될 때 기존의 데이터들을 가지고 중지되었던 작업 위치부터 실행될 수 있도록 하는 것이다.

어떠한 프로세스의 실행 중에 다른 프로세스의 실행 요구를 받으면 컨텍스트 스위칭 과정이 일어난다. 이 때, 기존 작업 내용을 저장하기 위해 PCB에 업데이트하고, 다른 프로세스의 PCB 내용을 판독하여 작업 수행을 진행한다.

 

54. 일대일(1:1) 스레딩 모델과 다대일(n:1) 스레딩 모델의 차이점과 일대일(1:1) 스레딩 모델을 선호하는 이유를 설명하시오.

더보기

다대일 스레딩 모델은 스레드 라이브러리를 통해 스레드의 스케줄링을 진행하지만, 일대일 스레딩 모델은 커널 영역에서 스레드들을 일대일로 스케줄링해준다는 점에서 차이가 있다.

일대일 스레딩 모델은 스레드 별로 다중 처리 작업이 가능하기 때문에 더 선호된다.

 

55. 프로세스와 스레드의 차이를 설명하시오.

더보기

프로세스는 실행 중인 프로그램을 말하며, 스레드는 프로세스 내 실행 단위이다.

프로세스는 최소 하나 이상의 스레드를 보유하고 있으며 기본적으로 프로세스끼리 자원을 공유할 수 없는 독립적이다. 스레드는 스레드 실행 환경 정보, 지역 데이터, 스택 영역으로 구성되며 공통 프로세스 내의 자원을 공유할 수 있다.

 

 

728x90