연습문제

  1. 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어는 무엇인가?

운영체제(operating system)

  1. 가전제품과 같이 CPU의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제를 무엇이라고 하는가?

임베디드 운영체제(embedded operating system)

  1. 사용자가 원하는 기능을 수행하기 위해 컴퓨터 자원을 사용하는 소프트웨어는 무엇인가?

응용 프로그램(application program)

  1. 운영체제가 없는 컴퓨터에서는 어떤 문제가 발생하는지 설명하시오.

a. 초기 설계된 대로만 동작할 수 있고 새로운 기능의 추가 및 확장이 불가능하다.

b. 프로그래머가 직접 자원을 관리해야하므로 프로그래머가 응용프로그램을 작성할 때 CPU 제조사별로 다른 코드를 작성해야 한다.

c. 응용프로그램 및 사용자가 직접 자원에 접근할 수 있어 악성코드를 심거나 고의적으로 특정 데이터를 날려버리는 것이 가능해진다.

d. 여러 응용프로그램을 실행하면 서로 자원을 사용하려 하는데, 중재자(OS)가 없어 특정 프로그램이 자원을 독점할 가능성이 있다.

  1. 기계와 사용자 사이에 명령을 전달하고 처리한 결과를 알려주는 것을 무엇이라고 하는가?

인터페이스(interface)

  1. 프로그램과 데이터를 한 번에 입력한 후 작업의 최종 결과만 얻는 운영체제 방식을 무엇이라고 하는가?

일괄처리 시스템(batch system)

  1. 프로그램이 진행되는 도중에 사용자로부터 데이터를 입력받아 프로그램 진행에 반영할 수 있는 운영체제 방식을 무엇이라고 하는가?

대화형 시스템(interactive system)

  1. CPU 사용 시간을 쪼개어 여러개의 프로그램이 동시에 실행되는 것처럼 보이는 운영체제 방식을 무엇이라고 하는가?

시분할 시스템(time sharing system)

  1. 멀티프로그래밍 수준은 동시에 실행되는 작업의 개수를 나타낸다. 멀티프로그래밍 수준이 1인 시스템을 무엇이라고 하는가?

일괄처리 시스템(batch system)

  1. 멀티프로그래밍 수준이 2보다 크거나 같은 시스템을 두 개 이상 쓰시오.

리눅스(linux), 윈도우즈(windows), 안드로이드(android), iOS

11
. 특정 작업이 일정 시간 안에 처리되도록 보장하는 시스템을 무엇이라고 하는가?
실시간 시스템(real-time system)

  1. 작고 싼 컴퓨터를 네트워크로 묶어 대형 컴퓨터와 같은 일을 할 수 있도록 만든 시스템을 무엇이라고 하는가?

분산 시스템(distributed system)

  1. 서버 없이 말단 노드끼리 데이터를 주고받는 시스템을 무엇이라고 하는가?

P2P 시스템(peer to peer system)

  1. 커널이 자신의 자원을 보호하기 위해 만든 함수의 집합을 무엇이라고 하는가?

시스템 호출(system call)

  1. 커널과 하드웨어 사이의 인터페이스를 무엇이라고 하는가?

디바이스 드라이버 또는 장치 드라이버(device driver)

  1. 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성되어있는 커널 구조를 무엇이라고 하는가?

단일형 커널(monolothic kernel)

  1. 커널의 기능을 최소화하여 여러 컴퓨터에 이식하기 쉽게 만든 커널 구조를 무엇이라고 하는가?

마이크로 커널(micro kernel)

  1. 서로 다른 운영체제에서 하나의 응용 프로그램으로도 작동할 수 있도록 만든 시스템을 무엇이라고 하는가?

가상머신(virtual machine)

심화문제

  1. 운영체제의 역할을 설명하시오.

a) 자원관리

OS위에서 실행되는 여러 응용프로그램이 자원을 사용하는 순서를 지정해주고 사용이 끝나면 자원을 회수한다.

b) 자원보호

응용프로그램 혹은 사용자의 자원에 대한 직접 접근을 막음으로써 자원을 보호한다.

c) 하드웨어 인터페이스 제공

사용자는 시스템 콜을 통해 하드웨어의 종류를 신경쓰지 않고 손쉽고 일관되게 하드웨어 자원을 사용할 수 있다. 이는 운영체제가 하드웨어 인터페이스를 제공하기 때문이다. 하드웨어 인터페이스를 위해서는 하드웨어 제조사에서 만든 디바이스 드라이버가 필요하다. 다만 키보드나 마우스와 같은 단순한 하드웨어는 운영체제에서 기본적으로 인터페이스를 제공한다.

d) 사용자 인터페이스 제공

사용자는 시스템 콜을 통해 하드웨어 자원을 사용할 수 있다. 사용자 인터페이스는 시스템 호출이라는 함수 형태로 제공되고 사용자는 이러한 인터페이스를 사용해 하드웨어를 신경쓰지 않고 원하는 기능을 실행할 수 있다.

  1. 운영체제의 목표를 설명하시오.

a) 효율성

자원관리를 통해 이를 달성한다.

b) 안정성

운영체제는 사용자의 자원에 대한 직접 접근을 막아 안정성을 제공한다.

c) 확장성

새로운 하드웨어도 디바이스 드라이버만 설치하면 사용할 수 있도록 하드웨어 인터페이스를 제공하여 확장 가능하다.

d) 편리성

시스템 호출, 사용자 그래픽 인터페이스(GUI) 등을 통해 사용자가 편리하게 컴퓨터를 사용할 수 있도록 해준다.

  1. CPU 집중 작업과 입출력 집중 작업에 대해 설명하시오.

a) CPU 집중 작업

계산 위주의 작업이다. 프로그램 실행동안 주로 CPU 연산이 수행된다. 배치 시스템은 프로그램이 실행되는 동안 입출력이 불가능하고 데이터 수정이 불가능한데, 이러한 특성으로 주로 프로그램이 CPU 집중 작업으로 되어있다. 대표적으로 1950대에 개발된 천공카드 리드기와 라인프린터로 구성된 컴퓨터는 배치시스템으로 계산위주의 작업에 사용되었다.

b) 입출력 집중 작업

프로그램 작업이 주로 주변장치와의 입출력이다. 대화형 시스템은 프로그램 실행도중 입출력이 가능하므로 입출력 집중작업이 가능하다.

  1. 실시간 시스템에 대해 설명하시오.

정해진 시간안에 작업의 완료가 보장되는 시스템이다. 미사일, 자동차 제어기 등과 같이 정해진 응답시간이 지켜지지 않으면 치명적인 문제가 발생할 수 있는 시스템에 사용된다.

  1. 클라우드 컴퓨팅에 대해 설명하시오.

여러대의 범용 컴퓨터를 네트워크로 묶어 한 대의 컴퓨터처럼 사용할 수 있는 분산 시스템을 사용한다. 또한 사용자가 필요할 때 온라인으로 접속하여 기능을 사용하고 사용한 만큼의 비용을 지불하는 SaaS 개념이 사용된다.

대표적으로 구글 드라이브, 아마존 AWS, 네이버 클라우드 등이 있다.

  1. API와 SDK를 비교하여 설명하시오.

a) API(Application Programming Interface) 응용 프로그램 개발에서 사용할 수 있도록 운영체제, 혹은 프로그래밍 언어가 제공하는 함수 집합이다. 운영체제의 시스템 호출(system call) 역시 운영체제가 제공하는 API이다.

b) SDK(System Development Kit)은 응용 프로그램 개발에 필요한 API, 코드 편집기, 에뮬레이터 등을 통합하여 개발자가 편리하게 개발을 할 수 있도록 해주는 툴(tool)이다. 대표적으로 안드로이드에서 돌아가는 응용프로그램을 개발하기 위한 SDK인 안드로이드 스튜디오가 있다.

  1. 단일형 구조 커널의 특징을 설명하시오.

초창기 운영체제가 사용하든 커널의 구조이다. 커널을 모든 기능의 모듈들이 구분없이 하나로 되어있다. 말하자면 main함수 내에 다 때려박은 형태이다. 따라서 모듈간의 의존성이 높아 코드 수정이 어렵다. 마찬가지 이유로 버그나 에러가 발생했을 때 원인을 파악하기도 쉽지 않다. 다만 모듈간의 통신을 위한 비용이 발생하지 않아 자원 사용 측면에서 효율적이다.

  1. 마이크로 구조 커널의 특징을 설명하시오.

프로세스 관리, 메모리 관리, 프로세스간 통신 관리라는 커널의 기본적인 기능만 제공한다. 나머지 기능은 사용자 영역에서의 응용 프로그램 구현을 통해 처리한다. 각 모듈은 독립적으로 작동한다. 따라서 가볍고 이식성이 높아 CPU용량이 작은 시스템에도 적용이 가능하다.

+ Recent posts