[OS] 운영체제의 개요

Jade·2021년 2월 21일
0
post-custom-banner

이 글은 개인적으로 공부한 내용을 정리한 것이므로 틀린 내용이 포함되어 있을 수 있습니다.

연습문제 정리

01.

운영체제란, 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어이다.

운영체제의 대표적인 예는 윈도우, MacOS, 유닉스, 리눅스, iOS, 안드로이드이다.

02.

내비게이션, 전자사전, 스마트워치, 스마트 TV등의 가전제품과 같이 CPU의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제를 임베디드 운영체제 또는 임베디드 시스템이라고 한다.

03.

사용자가 원하는 기능을 수행하기 위해 컴퓨터 자원을 사용하는 소프트웨어를 응용 프로그램이라고 한다.

04.

운영체제가 없는 컴퓨터는 만들 당시에 구현한 기능 외에 다른 기능을 추가하거나 성능을 향상할 수 없기 때문에 처음에 설계한 대로만 사용할 수 있다.

05.

기계와 사용자 사이에 명령을 전달하고 처리한 결과를 알려주는 것을 인터페이스라고 한다. 자동차의 핸들 및 계기판이라고 이해하면 쉽다.

06.

프로그램과 데이터를 한 번에 입력한 후 작업의 최종 결과만 얻는 운영체제 방식을 일괄 작업 시스템이라고 한다.

07.

프로그램이 진행되는 도중에 사용자로부터 데이터를 입력받아 프로그램 진행에 반영할 수 있는 운영체제 방식을 대화형 시스템이라고 한다.

08.

CPU 사용 시간을 쪼개어 여러 개의 프로그램이 동시에 실행되는 것처럼 보이는 운영체제 방식을 시분할 시스템이라고 한다.

09.

멀티프로그래밍 수준은 동시의 실행되는 작업의 개수를 나타낸다. 멀티프로그래밍 수준이 1인 시스템은 일괄 작업 시스템이다.

10.

멀티프로그래밍 수준이 2보다 크거나 같은 시스템은 시분할 시스템, 실시간 시스템, 다중 사용자 시스템 등이다.

11.

특정 작업이 일정 시간 안에 처리되도록 보장하는 시스템을 실시간 시스템이라고 한다.

12.

작고 싼 컴퓨터를 네트워크로 묶어 대형 컴퓨터와 같은 일을 할 수 있도록 만든 시스템을 분산 시스템이라고 한다.

13.

서버 없이 말단 노드끼리 데이터를 주고 받는 시스템을 P2P 시스템이라고 한다.

14.

시스템 호출(시스템 콜)이란, 커널이 자신의 자원을 보호하기 위해 만든 함수의 집합이다.

15.

커널과 하드웨어의 인터페이스는 드라이버가 담당한다.

16.

커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성되어 있는 커널 구조를 단일형 구조 커널이라고 한다.

17.

커널의 기능을 최소화하여 여러 컴퓨터에 이식하기 쉽게 만든 커널 구조를 마이크로 구조 커널이라고 한다.

18.

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

심화문제 정리

01. 운영체제의 역할

자원관리

키보드, 네트워크, 사운드카드 등의 자원을 응용 프로그램에 적절히 나누어주어 사용자가 원활하게 작업할 수 있도록 돕는다.

자원보호

악의적인 사용자나 미숙한 사용자로부터 컴퓨터의 자원을 지킨다.

하드웨어 인터페이스 제공

CPU, 메모리, 키보드, 마우스와 같은 다양한 사드웨어를 일관된 방법으로 사용할 수 있도록 지원하기 때문에 사용자는 어떤 회사에서 만든 하드웨어인지 신경 쓸 필요가 없다.

사용자 인터페이스 제공

사용자가 운영체제를 편리하게 사용하도록 GUI를 지원한다.

02. 운영체제의 목표

효율성

같은 자원을 관리하더라도 효율적으로 관리해야 한다. 일반적으로 운영체제의 크기를 최소화하고 운영체제가 사용하는 코드를 최적화하는 방법으로 이루어진다.

안정성

운영체제는 하드웨어 전체를 관리하는 소프트웨어로, 운영체제가 불안정하면 모든 작업이 불안할 수 밖에 없다. 운영체제가 안정적이려면 사용자와 응용 프로그램의 안전 문제와 하드웨어적인 보안 문제를 처리할 수 있어야 하며, 시스템에 문제가 발생했을 때 이전으로 복구하는 결함 포용(fault tolerant) 기능을 수행해야 한다.

확장성

다양한 시스템 자원을 추가하거나 제거하기가 편리해야 한다. 즉, 하드웨어의 종류에 상관없이 꽂으면 바로 실행할 수 있는 플러그 앤 플레이 기능을 제공해야 한다.

편리성

응용 프로그램과 사용자에게 다양한 편리성을 제공하면서도 자원의 낭비 요소를 막아야 한다.

03. CPU 집중 작업과 입출력 집중 작업이란?

CPU 집중 작업

프로그램이 실행되는 동안 입출력이 불가능한 일괄 작업 시스템. 수학 계산과 같은 프로그램이 대표적인 예이다.

입출력 집중 작업

프로그램이 실행되는 동안 입출력이 가능한 대화형 시스템. 동영상 플레이어와 데이터베이스 같은 프로그램을 예로 들 수 있다.

04. 실시간 시스템이란?

시분할 시스템을 사용하지 않고 특정 시스템에서 일정 시간 안에 작업이 처리되도록 보장하는 시스템이다.

기존 시분할 시스템의 단점은 여러 작업을 동시에 처리하기 위한 추가 작업 시간이 필요하다. 또한 시스템 내에 많은 양의 작업이 공존할 경우, 중요한 작업이 일정 시간 안에 끝나는 것을 보장하지 못한다.

실시간 시스템은 경성 실시간 시스템과 연성 실시간 시스템으로 나눌 수 있는데, 먼저 경성 실시간 시스템은 지정한 응답 시간을 정확히 지키는 시스템으로 원자력 발전소의 원자로 온도 제어, 미사일 요격과 같은 작업에 이용된다.

연성 실시간 시스템은, 지정한 응답 시간을 최대한 지키지만 융통성이 어느 정도 허용된 시스템으로 응답 시간 안에 작업이 처리되지 않으면 끊김 현상이 발생하지만 치명적인 결과는 아닌 동영상 재생기를 예로 들 수 있다.

05. 클라우드 컴퓨팅이란?

언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨팅 환경으로, 필요한 컴퓨팅 자원을 구매하여 사용하는 컴퓨팅 환경인 그리드 컴퓨팅과 SaaS를 합쳐놓은 형태이다.

하드웨어를 포함한 시스템이 구름에 가려진 것처럼 사용자에게 보이지 않는 컴퓨팅 환경이라는 의미에서 클라우드라는 명칭이 붙게 되었다.

06. API와 SDK 비교

API는 응용 프로그램이 자신과 연관된 프로그램을 만들 수 있도록 제공하는 인터페이스이다. 예를 들어 포토샵은 매우 강력한 그래픽 프로그램이지만 얼굴 보정 필터돠 같은 수백 가지의 필터를 모두 제공하진 않는다. 따라서 포토샵은 이러한 필터를 개발하려는 사람들을 위해 다양한 프로그래밍 인터페이스를 제공하는데 이 인터페이스가 바로 API이다.

SDK는 프로그램 개발자를 위해 API 및 API 사용 매뉴얼뿐만 아니라 프로그램 개발에 필요한 코드 편집기와 에뮬레이터 같은 각종 개발용 응용 프로그램까지 하나로 묶어서 배포하는 개발 툴을 말한다.

07. 단일형 구조 커널의 특징

커널의 초창기 운영체제 구조로, 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성되어 있다. 단일형 구조에 속하는 대표적인 운영체제는 MS-DOS, 초기의 유닉스 운영체제이다.

단일형 구조의 장점은 모듈이 거의 분리되지 않았기 때문에 모듈 간의 통신이 줄어들어 효율적인 운영이 가능하다. 하지만 이 점 때문에 버그나 오류를 처리하기가 어렵고 상호 의존성이 높기 때문에 기능상의 작은 결함이 시스템 전체로 확산될 수 있다.

08. 마이크로 구조 커널의 특징

프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공한다. 커널의 구조를 살펴보면 다른 커널에 비해 운영체제의 많은 부분이 사용자 영역에 구현되어 있다. 커널은 메모리 관리와 프로세스 간의 동기화 서비스를 제공하며, 메모리 관리자와 동기화 모듈은 프로세스 간 통신 모듈로 연결되어 있다. 그러므로 각 모듈은 세분화되어 존재하고 모듈 간의 정보 교환은 프로세스 간 통신을 이용하여 이루어진다.

또한 각 모듈은 독립적으로 작동하기 때문에 하나의 모듈이 실패하더라도 전체 운영체제가 멈추지 않으며, 많은 컴퓨터에 이식하기 쉽고 커널이 가벼워 CPU 용량이 작은 시스템에도 적용이 가능하다.

📌 조성호, 『쉽게 배우는 운영체제』, 한빛아카데미(2018)

profile
우당탕탕 좌충우돌 인프라 여행기
post-custom-banner

0개의 댓글