운영체제 연습문제 3장 해답

Posted by 드린
2017. 4. 6. 09:00 팁(TIP)

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

ㄱ.실행가능한 PCB가 있는 프로그램

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

ㄷ.목적 또는 결과에 따라 발생하는 사건들의 과정

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

①ㄱ,ㄴ,ㄷ    ②ㄱ,ㄴ,ㄹ    ③ㄱ,ㄷ,ㄹ    ④ㄴ,ㄷ,ㄹ


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

①작업 집합    ②세그먼테이션    ③모니터    ④프로세스


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

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

②실행 중인 프로그램

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

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


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

실행 중인 프로그램

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

프로시저가 활동 중인 것

PCB를 가진 프로그램

①process    ②working set    ③monitor    ④semaphore


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

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

②실행 중인 프로그램

③프로시저가 활동 중인 것

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


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

ㄱ.프로시저가 활동 중인 것

ㄴ.PCB를 가진 프로그램

ㄷ.동기적 행위를 일으키는 존재

ㄹ.프로세서를 할당하는 실체

①ㄱ,ㄴ    ②ㄱ,ㄹ    ③ㄱ,ㄴ,ㄹ    ④ㄱ,ㄴ,ㄷ,ㄹ


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

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

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

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

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


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

①실행 중인 프로그램

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

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

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


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

실행 중인 프로그램

커널에 등록하고 커널의 관리하에 있는 작업

각종 자원들을 요청하고 할당받을 수 있는 개체

①processor    ②locality    ③process    ④page


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

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

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

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

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


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

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

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

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

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


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

①실행 상태    ②준비 상태    ③대기(보류) 상태    ④깸 상태


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

①디스패칭: 준비 상태 => 실행상태

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

③꺰: 대기 상태 => 실행 상태

④할당 시간 종료: 실행 상태 => 준비 상태


14.PCB에 대한 설명으로 틀린 것은?

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

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

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

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


15.PCB가 갖고 있는 정보가 아닌 것은?

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

②프로세스의 현재 상태

③프로세스 고유 식별자

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


16.PCB가 포함하는 정보가 아닌 것은?

①프로세스의 현 상태

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

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

④프로세스의 사용 빈도


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

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

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

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

④Process Control Block을 의미한다.


18.PCB에 포함되는 정보가 아닌 것은?

①프로세스의 현 상태

②프로세스 고유 구별자

③프로세스의 우선순위

④파일 할당 테이블


19.PCB에 포함되는 정보가 아닌 것은?

①프로세스 처리기 종류

②프로세스 현 상태

③프로세스 고유한 식별자

④프로세스 우선순위


20.PCB가 가지고 있는 정보가 아닌 것은?

①프로세스 상태

②프로그램 카운터

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

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


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

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

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

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

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

#기출 문제를 보고 풀었기에 자세한 설명은 모릅니다.


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

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

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

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

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


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

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

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

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

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

①ㄱ,ㄴ    ②ㄱ,ㄷ,ㄹ    ③ㄴ,ㄷ,ㄹ    ④ㄱ,ㄴ,ㄷ,ㄹ


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

①문맥 교환    ②모니터    ③세마포    ④디스패치


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

①세마포    ②모니터    ③상호배제    ④문맥 교환


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

①working set    ②context switching    ③locality    ④thread


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

①dispatch    ②wake up    ③context switching    ④suspended


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

①working set    ②PCB    ③스레드    ④세그먼트


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

①thread    ②working set    ③semaphore    ④monitor


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

사용자 관점: 세그먼트의 가상 주소공간을 갖는 실행상태

시스템 관점: 저장 프로그램은 프로세서를 할당받아야 실행상태의 프로세스가 됨


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

스택: 데이터를 일시적으로 저장하는 영역

힙: 코드영역과는 별도로 유지되는 자유영역

데이터: 프로그램의 가상 주소 공간

코드: 실행명령을 포함하는 메모리이거나 목적파일에 있는 프로그램 영역


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

준비=> 실행(1)    : 다중 프로그래밍 운영체제에서는 실행 프로세스가 프로세서를 일정 시간만 사용할 수 있도록 시간을 제한하는데 이를 시간 할당이라 한다.

실행=> 준비(2)    : 프로세스가 프로세서를 점유하고 있으면 실행 상태이며, 특정 프로세스가 일정 시간이 지나도 프로세서를 반환하지 않으면 클록이 인터럽트를 발생시켜 운영체제가 프로세서 제어권을 갖게 한다. 운영체제가 제어권을 가지면 실행중인 프로세스는 준비 상태로 변하고 준비 리스트의 첫 프로세스가 실행상태가 된다.

실행=> 대기(보류)(5)    : 실행 프로세스가 지정 시간 전에 입출력 연산등이 필요하거나 새로운 자원 요청같은 문제가 발생하면, 스스로 프로세서를 양도하고 대기상태가 된다.

대기(보류)=> 준비(3)    : 프로세스는 입출력 작업이 끝나면 깨움으로 대기에서 준비상태가 된다.


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

시스템 장애, 시스템 회복 시 재시작

사용자의 프로세스 중단,재시작    

시스템 과부화, 정상 상태로 돌아오면 재시작


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

프로세스 식별자,    프로세스 상태,    프로그램 카운터,    레지스터 저장 영역,    프로세서 스케줄링 정보,    계정 정보,    입출력 상태 정보,    메모리 관리 정보


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

프로세스의 자원과 메모리 공유 가능

경제성 좋음

다중 처리로 성능과 효율 향상


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

준비=> 실행(1)    : 다중 프로그래밍 운영체제에서는 실행 프로세스가 프로세서를 일정 시간만 사용할 수 있도록 시간을 제한하는데 이를 시간 할당이라 한다.

실행=> 준비(2)    : 프로세스가 프로세서를 점유하고 있으면 실행 상태이며, 특정 프로세스가 일정 시간이 지나도 프로세서를 반환하지 않으면 클록이 인터럽트를 발생시켜 운영체제가 프로세서 제어권을 갖게 한다. 운영체제가 제어권을 가지면 실행중인 프로세스는 준비 상태로 변하고 준비 리스트의 첫 프로세스가 실행상태가 된다.

실행=> 대기(보류)(5)    : 실행 프로세스가 지정 시간 전에 입출력 연산등이 필요하거나 새로운 자원 요청같은 문제가 발생하면, 스스로 프로세서를 양도하고 대기상태가 된다.

대기(보류)=> 준비(3)    : 프로세스는 입출력 작업이 끝나면 깨움으로 대기에서 준비상태가 된다.


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

사용자 수준 스레드는 스레드 사이에 이전 커널이 개입하지 않아 커널보다 속도가 빠르다

커널 수준 스레드는 같은 프로세스의 스레드를 동시에 스케줄링할 수 있고, 한 프로세스의 스레드가 대기 상태가 되면 커널이 같은 프로세스에서 다른 스레드를 스케줄할 수 있다는 장점이 있음

사용자 수준 스레드: 사용자 수준에서 스레드 관리 효율적

커널 수준 스레드: 프로세스의 스레드 중 어느 하나가 대기 상태이더라도 다른 스레드를 실행할 수 있어 시스템 성능을 높일 수 있음


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

스레드는 같은 그룹의 스레드와 코드, 주소 공간, 운영체제의 자원등을 공유

프로세스가 실생 중인 프로그램의 역할을 수행하려면 프로세서 할당 시간과 메모리, 파일, 입출력 장치같은 자원이 필요, 자원은 프로세스가 생성되거나 실행될 때 할당됨


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

일괄 처리 환경에서는 인터럽트를 발생시키거나 시스템 호출로 중지 명령을 전달

대화형 환경에서는 사용자가 로그오프를 하거나 터미널을 닫을 때 프로세스 종료


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

인터럽트는 운영체계가 하던 일을 멈추고 다음에 무엇을 할 것인지 결정

트랩은 하드웨어에 의해 자동적으로 미리 알려진 위치에 조건적으로 점프하는 것


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

프로세스를 다른 프로세스로 교환하기 위해 이전 프로세스의 상태, 레지스터 내용을 보관하고 다른 프로세스 레지스터를 적재해야 할 때


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

장점: 높은 이식성 = 기본 커널을 변경할 필요 없음, 스케줄링의 유연성 = 스레드 라이브러리에서 스레드 스케줄링을 제어해 응용프로그램에 맞게 구성되어짐

단점: 시스템 규모 확장 제약 = 다중 처리 환경이라도 여러 프로세서에서 분산처리를 할 수 없으므로 시스템 규모 확장이 어려움, 스레드 간 보호의 어려움 = 스레드간의 보호에 커널의 보호 기법을 사용할 수 없음


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

설명: 커널에 최소 기능만 포함시켜 크기를 줄이고 기타 기능은 사용자 공간으로 옮겨 사용자 영역에서 수행하는 서버 구현 방법

장점: 독립적인 서버에서 수행하기에 잘못 수행되어도 다른 서버와 커널에 치명적인 영향을 주지 않음

단점: 모듈 간에 통신이 빈번하게 발생해 성능이 떨어질 수 있음


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

힙: 스레드 실행 환경정보, 지역 데이터, 스택을 독립적으로 가지며 코드, 전역 데이터, 힙을 다른 스레드와 공유


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

목적: 프로세스 제어에 필요한 상태를 점검하고 프로세서를 제어하기 위함

프로세스를 제어할 때, 프로세스 생성, 프로세스 종료


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

일대일: 각 사용자 스레드를 각각 하나의 커널 스레드로 사상

다대일: 많은 사용자 수준 스레드를 하나의 커널 스레도 사상

선호하는 이유: 높은 이식성, 스케줄링의 유연성


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

프로세스: 자신만의 고유 공간과 자원을 할당 받아 사용

스레드: 다른 스레드와 공간을 공유


#운영체제 #연습문제 #구현회 #그림으로 배우는 구조와 원리 #개정3판 #한빛아카데미


    • abc
    • 2017.04.09 23:56
    감사합니다. 많은 도움이 되었습니다.
    • ㅇㅇ
    • 2017.04.11 23:40
    21번 4번은 왜 오답인가요? 잘 모르겠네요 ㅠㅠ
    • ㅇㅇ
    • 2017.04.12 20:40
    답변 감사드립니다! 공부하는데 도움이 많이 되요
    • ㅇㅇ
    • 2017.04.12 20:44
    근데 21번 부모프로세스와 자식 프로세스가 공유한다는것도 틀린거 맞죠? 3,4번 중복 정답인가요?
    • ㅇㅇ
    • 2017.04.12 20:48
    아 그렇군요 귀찮으실텐데 질문 계속 해서 죄송하고 정말 감사드립니다 ㅠㅠ
    • 이성
    • 2017.04.22 14:02
    21 22 23번에서 21번은 공유한다가 맞다고 되있는데 22-23번은 PCB설명중 공유하는게 틀리다고 되있는데 뭐가 맞는건가요
    • 기출문제를 찾아보면 3번도 맞고 4번도 맞습니다.
      그러므로 복수 정답인것 같네요.
      문제 출제자가 누군지 참...
      문제가 너무 이상해 이렇게 질문을 많이 하시는것 같습니다.
      저도 직접 기출문제 찾아서 하다보니 자세히는 모르겠네요.
    • 지나가던 행인
    • 2017.10.18 13:38
    21번 3,4번 복수 정답.
    3번 - 제어 블록을 공유하지 않는다.
    4번 - 프로세서를 소멸된다.
이 댓글을 비밀 댓글로