Operating System

[쉽게 배우는 운영체제] Chapter 01. 운영체제의 개요

곽수진 2023. 4. 18. 16:27
반응형

01 운영체제의 정의

컴퓨터 자원을 효율적으로 관리하는 소프트웨어를 운영체제 혹은 OS라고 부른다. 운영체제는 사용자에게 인터페이스를 제공하고 응용 프로그램에 컴퓨터 자원을 골고루 배분하여 작업 환경을 만들어 준다. 적당한 시점에 응용 프로그램으로부터 자원을 회수하고 악의적인 응용 프로그램으로부터 컴퓨터를 보호한다.

 

02 운영체제의 역할과 목표

컴퓨터 자원을 관리하는 운영체제의 역할은 자원 관리, 자원 보호, 하드웨어 인터페이스 제공, 사용자 인터페이스 제공이다. 운영체제는 이러한 역할을 제대로 수행하여 효율성, 안정성, 확장성, 편리성을 강화할 수 있는 형태로 발전해 왔다.

 

03 운영체제의 구성

운영체제의 핵심 기능을 모아놓은 것을 커널이라고 하며 커널에 명령을 내리고 그 결과를 알려주는 것을 사용자 인터페이스라고 한다. 커널과 하드웨어의 인터페이스는 디바이스 드라이버라고 한다.

 

04 운영체제의 역사

▶ 작업 방식의 발전

한 번에 하나의 프로그램만 실행할 수 있는 일괄 작업 시스템(또는 일괄 처리 시스템)에서, 키보드와 모니터가 발명되자 대화형 시스템이 가능해졌다. 이후 CPU 시간을 잘게 나누어 여러 프로그램을 동시에 실행하는 시스템인 시분할 시스템이 등장하였다. 시분할 시스템으로 다중 사용자 시스템이 만들어졌고 이때 만들어진 운영체제가 유닉스(UNIX)다.

 

▶ 컴퓨팅 환경의 발전

네트워크상에 분산된 여러 컴퓨터로 작업을 처리하고 그 결과를 상호 교환하도록 구성한 것이 분산 시스템이다. 이것이 발전하여 언제 어디서나 컴퓨팅 파우와 소프트웨어에 접근할 수 있는 유연한 컴퓨팅 환경을 제공하는 클라우드 시스템이 개발되었다.

 

05 시스템 호출과 API, SDK

▶ 시스템 호출

커널은 컴퓨터 자원을 사용할 수 있도록 다양한 (시스템) 함수를 제공하는데, 사용자가 자발적으로 커널에 진입할 수 있는 유일한 방법은 시스템 호출뿐이다.

 

▶ API

응용 프로그램이 자신과 연관된 프로그램을 만들 수 있도록 제공하는 인터페이스다.

 

▶ SDK

프로그램 개발자를 위해 API, 코드 편집기, 에뮬레이터 같은 각종 개발용 응용 프로그램까지 하나로 묶어서 배포하는 개발 툴이다.

 

06 커널의 종류

▶ 단일형 구조 커널

핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성된 커널이다.

 

▶ 계층형 구조 터널

비슷한 기능을 구현하는 모듈을 묶어서 하나의 계층으로 만들고, 계층 간의 통신을 통해 운영체제를 구현하는 방식의 커널이다.

 

▶ 마이크로 구조 터널

프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본 기능만 제공하는 커널이다.

 

 


 

 

연습문제 01. 소프트웨어는 (응용 프로그램)과 시스템 소프트웨어로 나뉜다.

 

연습문제 02. 운영체제의 주요 역할과 가장 거리가 먼 것은?

① 인터페이스 제공

② 컴퓨터 자원 관리

③ 그래픽 사용

④ 자원을 숨김

 

연습문제 03. 운영체제의 목표와 가장 거리가 먼 것은?

① 효율성

② 복잡성

③ 안정성

④ 확장성

 

연습문제 04. 운영체제의 구성 요소가 아닌 것은?

① 유틸리티

② GUI

③ 드라이버

④ 커널

 

연습문제 05. 나머지 셋과 종류가 다른 것은?

① 드라이버

② GUI

③ 셸

④ 명령 프롬프트

▶ 드라이버는 하드웨어 확장에 필요함

 

연습문제 06. 운영체제의 핵심 기능을 모아놓은 것은?

① 유틸리티

② 사용자 인터페이스

③ 디바이스 드라이버

④ 커널

 

연습문제 07. 초기의 컴퓨터이며 전선을 바꿔 프로그래밍하는 시스템은?

① 하드와이어링 시스템

② 일괄 작업 시스템

③ 시분할 시스템

④ 실시간 시스템

 

연습문제 08. 한 번에 하나의 프로그램만 실행할 수 있는 시스템은?

① hard wiring system

② batch job system

③ time sharing system

④ real-time system

 

연습문제 09. 키보드와 모니터가 발명되면서 실현 가능하게 된 시스템은?

① 대화형 시스템

② 일괄 작업 시스템

③ 시분할 시스템

④ 실시간 시스

 

연습문제 10. CPU 시간을 잘게 나누어 여러 프로그램이 동시에 실행되는 것처럼 보이는 시스템은?

① hard wiring system

② batch job system

③ time sharing system

④ real-time system

 

연습문제 11. 클라이언트/서버 시스템의 서버 과부하 문제를 해결하기 위해 고안된 시스템은?

① 실시간 시스템

② 클라우드 컴퓨팅

③ P2P 시스템

④ 사물 인터넷

 

연습문제 12. 언제 어디서나 컴퓨팅 파워나 소프트웨어에 접근할 수 있는 유연한 컴퓨터 환경을 위해 고안된 시스템은?

① real-time system

② cloud computing

③ P2P system

④ Internet of Things

 

연습문제 13. 사용자가 커널에 진입할 수 있는 유일한 수단은?

① 시스템 호출

② 사용자 정의 함수

③ 디바이스 드라이버

④ 사용자 인터페이스

 

연습문제 14. 응용 프로그램이 자신과 연관된 프로그램을 만들 수 있도록 제공하는 인터페이스는?

① interface

② API

③ shell

④ kernel

 

연습문제 15. 프로그램 개발자를 위해 API, 코드 편집기, 에뮬레이터 같은 각종 개발용 응용 프로그램까지 하나로 묶어서 배포하는 개발 툴은?

① SDK

② 시스템 호출

③ 드라이버

④ 커널

 

연습문제 16. 커널과 하드웨어의 인터페이스를 가리키는 것은?

① SDK

② system call

③ driver

④ API

 

연습문제 17. 핵심 기능을 구현하는 모듈이 구분 없이 하나로 구성된 커널은?

① 마이크로 구조 커널

② 와이드형 구조 커널

③ 계층형 구조 커널

④ 단일형 구조 커널

 

연습문제 18. 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고, 계층 간 통신을 통해 운영체제를 구현하는 방식의 커널은?

① micro architecture kernel

② wide architecture kernel

③ layered architecture kernel

④ monolithic architecture kernel

 

연습문제 19. 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본 기능만 제공하는 커널은?

① micro architecture kernel

② wide architecture kernel

③ layered architecture kernel

④ monolithic architecture kernel

 

연습문제 20. 서로 다른 운영체제에서 동일한 작업 환경을 만들어 주는 것은?

① 객체지향

② 컴파일러

③ 가상머신

④ 인터프리터

 

연습문제 21. (운영체제)는 컴퓨터 전체를 관리하고 운영하는 소프트웨어이다.

 

연습문제 22. (인터페이스)은 운영체제에서 커널에 명령을 내리고 그 결과를 알려주는 것이다.

 

연습문제 23. (임베디드 시스템(임베디드 컴퓨터))은 CPU 성능이 낮고 메모리 크기가 작은 기계에 탑재된 컴퓨터다.

 

연습문제 24. 컴퓨터가 일반 기계와 다른 점은 (계산)을 할 수 있다는 것이다.

 

연습문제 25. 운영체제는 (자원)을 효율적으로 관리하는 소프트웨어다.

 

연습문제 26. (커널)은 운영체제의 핵심 기능을 모아놓은 것이다.

 

연습문제 27. (하드 와이어링 시스템)은 초기의 컴퓨터로, 전선을 바꿔 프로그래밍하는 시스템이다.

 

연습문제 28. (일괄 처리 시스템(batch job system))은 한 번에 하나의 프로그램만 실행할 수 있는 시스템이다.

 

연습문제 29. (대화형 시스템)은 키보드와 모니터가 발명되면서 실현 가능하게 된 시스템이다.

 

연습문제 30. (시분할 시스템)은 CPU시간을 잘게 나누어 여러 프로그램이 동시에 실행되는 것처럼 보이는 시스템이다.

 

연습문제 31. (P2P 시스템)은 클라이언트/서버 시스템의 서버 과부하 문제를 해결하기 위해 고안된 시스템이다.

 

연습문제 32. (클라우드 컴퓨팅)은 언제 어디서나 컴퓨팅 파워와 소프트웨어에 접근할 수 있는 유연한 컴퓨터 환경을 위해 고안된 시스템이다.

 

연습문제 33. 사용자가 자발적으로 커널에 진입할 수 있는 유일한 방법은 (시스템 호출)뿐이다.

 

연습문제 34. (API)는 응용 프로그램이 자신과 연관된 프로그램을 만들 수 있도록 제공하는 인터페이스다.

 

연습문제 35. (SDK)는 프로그램 개발자를 위해 API, 코드 편집기, 에뮬레이터 같은 각종 개발용 응용 프로그램을 하나로 묶어서 배포하는 개발 툴이다.

 

연습문제 36. 커널과 하드웨어의 인터페이스를 (드라이버)라고 한다.

 

연습문제 37. (단일형 구조 커널)은 핵심 기능을 구현하는 모듈이 구분 없이 하나로 구성된 커널이다.

 

연습문제 38. (계층 구조 커널)은 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고, 계층 간의 통신을 통해 운영체제를 구현하는 방식의 커널이다.

 

연습문제 39. (마이크로 구조 커널)은 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본 기능만 제공하는 커널이다.

 

연습문제 40. 컴퓨터와 기계의 차이를 컴퓨터와 계산기의 차이를 이용해 설명하시오.

컴퓨터와 기계의 가장 큰 차이는 계산 능력입니다. 일반 기계는 단순한 기계적 운동으로 동작하지만, 컴퓨터는 수학적 계산과 논리적 판단 등을 수행하는 전자장치입니다.

 

연습문제 41. 운영체제의 정의를 간단히 설명하시오.

운영체제는 컴퓨터 자원을 효율적으로 관리하는 소프트웨어로, 사용자에게 인터페이스를 제공하고 응용 프로그램에 컴퓨터 자원을 골고루 배분해 작업 환경을 만들어주며 적당한 시점에 응용 프로그램으로부터 자원을 회수하고 악의적인 응용 프로그램으로부터 컴퓨터를 보호합니다.

 

연습문제 42. 시분할 시스템에 대하여 설명하시오.

CPU 사용 시간을 잘게 쪼개어 여러 작업에 나누어줌으로써 모든 작업을 동시에 처리하는 것처럼 보이는 시스템입니다. 이때, 잘게 나뉜 시간 한 조각을 타임 슬라이스(타임 퀀텀)이라고 하며 오늘날의 컴퓨터에서는 대부분 시분할 시스템이 사용됩니다. 다만, 사용자 메모리를 정리하는 추가 작업이 필요하며 시스템 내에 많은 양의 작업이 공존할 경우 중요한 작업이 일정 시간 안에 끝나는 것을 보장하지 못한다는 단점이 있습니다.

 

연습문제 43. 운영체제를 이루는 커널과 인터페이스에 대해 설명하시오.

커널은 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심 기능을 구현한 프로그램이며, 운영체제의 성능을 좌우합니다. 인터페이스는 사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에 돌려주는 역할을 합니다.

 

연습문제 44. API와 SDK를 비교하여 설명하시오.

API는 응용 프로그램 인터페이스로, 응용 프로그램이 자신과 연관된 프로그램을 개발할 수 있도록 제공하는 인터페이스입니다. 이러한 API 및 API 메뉴얼뿐 아니라 프로그램 개발에 필요한 코드 편집기와 에뮬레이터 등 각종 개발용 응용 프로그램까지 하나로 묶어 배포하는 개발 툴이 SDK(시스템 개발자용 키트)입니다.

반응형