쉽게 배우는 운영체제_ch1_운영체제의 개요

shon4bw·2021년 9월 8일
0

📝Quick Study

목록 보기
7/12
post-thumbnail

연습문제

01

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

운영체제는 응용 프로그램이나 사용자에게 컴퓨터 자원을 사용할 수 잇는 인터페이스를 제공하고 그 결과를 돌려준다.

02

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

03

사용자가 원하는 기능을 수행하기 위해 컴퓨터 자원을 사용하는 소프트웨어는?
응용 프로그램

04

운영체제가 없는 컴퓨터에서는 어떤 문제가 발생하는가?
만들 당시의 구현한 기능 외에 다른 기능을 추가하거나 성능을 향상시킬 수 없다.

05

기계와 사용자 사이에 명령을 전달하고 처리한 결과를 알려주는 것은?
인터페이스

인터페이스는 자동차의 핸들 및 계기판과 같다. 자동차는 엔진과 파퀴로 움직이지만 운전자가 핸들로 조종하고 계기판을 통해 현재 주행 상황을 인지한다. 마찬가지로 컴퓨터는 CPU와 메모리로 명령을 처리하지만 사용자가 키보드나 마우스로 자료를 입력하고 출력 결과를 얻는다.
즉 운영체제 인터페이스를 통해서만 컴퓨터 자원을 사용할 수 있다.

06

프로그램과 데이터를 한 번에 입력한 후 작업의 최종 결과만 얻는 운영체제 방식은?
Batch job system(일괄 작업 시스템)/1950년대
아니면 Batch processing system(일괄 처리 시스템) 라고도 함.

지금의 프로그래밍 환경과 달리 모든 작업을 한꺼번에 처리해야 하고 프로그램 실행 중간에 사용자가 데이터를 입력하거나 수정하는 것이 불가능, 요즘은 음악을 들으면서 문서 작업을 하는 등 동시에 여러 작업 가능하지만 이때는 불가능! 음듣코 불가!🎼

07

프로그램이 진행되는 도중에 사용자로부터 데이터를 입력받아 프로그램 진행에 반영할 수 있는 운영체제 방식은?
Interactive system(대화형 시스템)/1960년대 초반

batch job system은 단순 계산 위주의 작업만 가능했으나 대화형 시스템의 등장으로 문서 편집기, 게임과 같은 다양한 종류의 응용 프로그램을 만들 수 있게 되었다.

08

CPU 사용 시간을 쪼개어 여러 개의 프로그램이 동시에 실행되는 것처럼 보인느 운영체제 방식은?
Time sharing system(시분할 시스템)
또는 multitasking system(다중 작업 시스템)라고 불림

잘게 나뉜 시간 한조각을 time slice 혹은 time quantum이라고 한다. 오늘날의 컴퓨터에는 대부분 시분할 시스템이 사용된다.
시분할 시스템의 단점은 여러 작업을 동시에 처리하기 위한 추가 작업이 필요하다는 것. 또한 시스템 내에 많은 양의 작업이 공존할 경우, 중요한 작업이 일정 시간 안에 끝나는 것을 보장하지 못함
-> 일정 시간 안에 작업이 처리되도록 보장하고 싶으면, real-time system(실시간 시스템)을 사용

09

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

10

멀티프로그래밍 수준이 2보다 크거나 같은 시스템을 두 개 이상 쓰시오
다중 사용자 시스템, 시분할 시스템

11

특정 작업이 일정 시간 안에 처리되도록 보장하는 시스템은?
실시간 시스템

12

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

13

서버 없이 말단 노드끼리 데이터를 주고받는 시스템은?
P2P 시스템

14

커널이 자신의 자원을 보호하기 위해 만든 함수의 집합은?
시스템 호출

커널
: 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것. ex) 자동차의 엔진

15

커널과 하드웨어 사이의 인터페이스는?
드라이버

16

커널의 핵심 기능을 구현하는 모듈들이 구분없이 하나로 구성되어 있는 커널 구조는?
Monolithic architexture(단일형 구조 커널)

17

커널의 기능을 최소화하여 여러 컴퓨터에 이식하기 쉽게 만든 커널 구조는?
Micro architecture(마이크로 구조 커널)

18

서로 다른 운영체제에서 하나의 응용 프로그램으로도 작동할 수 있도록 만든 시스템은?
Virtual machine(가상머신)

심화문제

01

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

  • 자원 관리
    : 우리는 컴퓨터로 다양한 일을 하는데 이때 키보드, 네트워크카드, 사운드카드 등의 컴퓨터 자원을 사용한다. 운영체제는 이러한 자원을 응용 프로그램에 나누어주어 사용자가 원활하게 작업할 수 있도록 돕는다. 만약 자원을 요청한 프로그램이 여러 개라면 적당한 순서로 자원을 배분하고 적절한 시점에 자원을 회수하여 다른 응용 프로그램에 나누어준다.
  • 자원 보호
    : 비정상적인 작업으로부터 컴퓨터 자원을 지킨다. ex 악의적인 사용자나 미숙한 사용자로부터 자원을 보호
  • 하드웨어 인터페이스 제공
    : 우리는 다양한 종류의 하드웨어를 사용한다. 운영체제는 복잡한 과정 없이 다양한 장치를 사용할 수 있도록 해주는 하드웨어 인터페이스를 제공한다. 운영체제는 CPU, 메모리, 키워드, 마우스와 같은 다양한 하드웨어를 일관된 방법으로 사용할 수 있도록 지원한다. 하드웨어 인터페이스가 자동으로 설치되게 함으로써 하드웨어의 종류에 상관없이 사용할 수 있게 해준다.
  • 사용자 인터페이스 제공
    : 사용자가 운영체제를 편리하게 사용하도록 지원하기 위함. ex 그래픽 사용자 인터페이스(GUI), 스마트폰의 터치 스크린 등

02

운영체제의 목표

  • 효율성
    : 적은 자원을 사용하여 결과를 빨리 보여주는 것이 효율적인 운영체제이다. 같은 자원을 사용하여 더 많은 작업량을 처리하거나, 같은 작업량을 처리하는 데 보다 적은 자원을 사용하는 것. 운영체제의 크기를 최소화하고 운영체제가 사용하는 코드를 최적화해야 한다.
  • 안정성
    : 운영체제는 하드웨어 전체를 관리하는 소프트웨어이기 대문에 사용자와 응용 프로그램은 운영체제 위에서 작업한다고 볼 수 있다. 운영체제의 안정성이 담보되어야 모든 작업이 불안하지 않을 수 있다.
  • 확장성
    : 다양한 시스템 자원을 추가하거나 제거하기가 편리해야 한다. 하드웨어의 종류에 상관없이 꽂으면 바로 실행할 수 있는 plug & play기능을 제공해야 한다.
  • 편리성
    : 사용자가 편리하게 작업할 수 있는 환경을 제공해야 한다. 운영체제 입장에서 효율성만 높이려고 하면 응용 프로그램이나 사용자에게 제약을 가하면 되지만, 사용자가 불편을 겪는다. 응용 프로그램과 사용자에게 다양한 편리성을 제공하면서도 자원의 낭비 요소를 막아야 한다.

03

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

  • CPU 집중 작업
    : 일괄 작업 시스템에서 프로그램이 실행되는 동안에 입출력이 불가능하기 대문에 대부분의 작업이 CPU만 사용하는 계산 작업
  • 입출력 집중 작엄
    : 대화형 시스템에서 프로그램이 실행되는 동안에 입출력이 가능하기 대문에 입출력 집중 작업(I/O bound job)이 생겨났다.

04

실시간 시스템에 대해 설명하시오
연습 문제 8번 참고
연습 문제 11번 참고

05

클라우드 컴퓨팅에 대해 설명하시오
언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨팅 환경. 그리드 컴퓨팅과 SaaS를 합쳐놓은 형태. 하드웨어를 포함한 시스템이 구름에 가려진 것처럼 사용자에게 보이지 않는 컴퓨터 환경이라는 의미에서 클라우드⛅라는 명칭이 붙었다.
cf. grid computing : 필요한 컴퓨팅 자원을 구매하여 사용하는 컴퓨팅 환경, 하드웨어적인 컴퓨팅 환경의 통하
Software as a Service : 사용자가 필요할 때 소프트웨어 기능을 이용하고 그만큼만 비용을 지불하는 개념. 프로그램을 깔거나 업데이트를 할 필용벗이 인터넷에 접속하면 누구나 이용할 수 있다.

06

API와 SDK를 비교하여 설명하시오
시스템 호출과 유사한 용어로 API(Application Programming Interface/응용 프로그램 인터페이스)와 SDK(System Developer's Kit/시스템 개발자용 키트)가 있다.

  • API : 응용 프로그램이 자신과 연관된 프로그램을 만들 수 있도록 제공하는 인터페이스. 시스템 호출보다 광범위한 개념이며, 운영체제의 API를 시스템 호출이라고 정의할 수 있다.
  • SDK : 프로그램 개발자를 위해 API 및 API 사용 매뉴얼뿐만 아니라 프로그램 개발에 필요한 코드 편집기와 에뮬레이터 같은 각종 개발용 응용 프로그램까지 하나로 묶어서 배포한느 개발 툴을 말한다. 개발자를 위한 종합 선물 세트라고 할 수 있으며, 대표적인 예로 안드로이드 SDK인 Android Studio가 있다.

07

단일형 구조 커널의 특징은?
1. 모듈이 거의 분리되지 않았다. 모듈 간의 통신 비용이 줄어들어 효율적인 운영이 가능하지만 버그나 오류를 처리하기 어렵다.
2. 운영체제의 여러 기능이 서로 연결되어 있어 기능상으 ㅣ작은 결함이 시스템 전체로 확산될 수 있다.
3. 다양한 환경의 시스템에 적용하기 어렵다. 단일형 구조에서는 수정이 어렵기 때문이다.
4. 현대의 운영체제는 매우 크고 복잡하기 때문에 완전 단일형 구조의 운영체제를 구현하기가 어렵다.

08

마이크로 구조 커널의 특징은?
운영체제가 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공한다. 커널의 구조는 운영체제의 많은 부분이 사용자 영역에 구현되어 있다. 마이크로 구조에서 각 모듈은 독립적으로 작동하기 대문에 하나의 모듈이 실패하더라도 전체 운영체제가 멈추지 않는다.
연습 문제 17번 참고
<-> 계층형 구조 커널 : 다양한 하드웨어와 사용자의 요규를 수용하기 위해 계속 계층과 기능을 추가. 커널으 ㅣ크기가 계속 커지고 필요한 하드웨어의 용량이 늘어났으며, 커널 소스가 방대해짐에 따라 오류를 잡기도 어려워짐

profile
cut_the_mustard

0개의 댓글