본문 바로가기

CS 대비/운영체제(OS)

운영체제 #1 Operating System?

Operating System?

 

The Brain of a Computer : 

 

컴퓨터 응용 프로그램 실행 과정에서 하드웨어들을 제어하고 프로그램 실행 결과를 보일 수 있도록 내부 동작을 관리하는 소프트웨어로, 컴퓨터가 무엇을 할 지 결정해주는 역할을 한다.

 

(신체 활동을 제어한다는 점에서 사람의 두뇌와 유사하다 볼 수 있다.)

 

 

Roles of Computer Systems

 

컴퓨터를 실행해서 응용 프로그램들을 사용하고 컴퓨터를 종료하기까지의 시나리오 하나를 생각해 봤을 때, 어디에서 운영체제가 사용되는 지 확인해볼 수 있다.

 

1. Booting the computer
: 사람이 사용할 수 있도록 준비 , 하드디스크와 같은 보조기억장치에 있는 운영체제를 실행할 수 있도록 메인 메모리로 옮기고, 기타 필요한 소프트웨어들을 준비시키는 과정 

2. Running the editor, compiler, music player ...
: 'Process management' / 프로그램 실행하는 역할을 담당

3. Controlling the multiple programs
: 'Process scheduling' / 문서 편집기, 음악 재생기 등.. 여러 프로그램을 동시 실행 시 제어, 관리 역할 담당

4. Receiving the keyboard input
: 'I/O device management' / 키보드를 통해 받은 입력값을 프로그램에 전달하는 역할 수행 , 입출력 장치 관리

5. Printing an output and controlling the printer
: 'I/O device management' / 사람이 볼 수 있는 형태로 출력

6. Shutting down the computer
: 사용이 끝난 후 컴퓨터를 안전하게 종료

 

위에 나열한 일들을 모두 OS가 담당한다고 볼 수 있다. 후에 운영체제 내부에 있는 기능들이 어떤 일을 하며, 어떻게 구현되어있는 지에 대해 더 자세하게 다룰 예정이다. 

 

What is the Operating System?

 

프로그램 실행을 제어하는 기능이 구현된 함수, functions이 모인 소프트웨어다.

 

ex) Windows, UNIX, Linux, MacOS ...

 

  • OS 계층구조도

OS는 컴퓨터 하드웨어와 프로그램 사이를 연결해주는 Interface라 할 수 있는데, 프로그램 대신 하드웨어에 access/control 한다.

 

Services 

 

앞서 소개한 계층 구조도에서 운영체제보다 상위계층에 있는 Application/user에 기능을 제공하는 것을 Service라 한다. 

 

제공되는 services는 다음과 같이 정리해볼 수 있다.

 

1. Program execution / 프로그램 실행 

2. Access to computer resources / 사용자나 프로그램 대신 컴퓨터 내부 자원(resources)에 접근해 사용할 수 있는 상태로 제공
(* OS를 공부할 때 resources 용어를 많이 접하게 된다. Hardware 및 Software, 하드디스크에 저장된 Data 등이 내부 자원의 일종이다.)

3. Error detection and response / 프로그램 실행 시 발생한 에러 감지, 처리

4. Accounting / 컴퓨터 이용 현황을 통계자료로 제공
: cpu, 메모리 자원을 프로그램이 얼마나 사용하고 있는지 등을 확인할 수 있다. 
(* windows는 작업관리자(ctrl + Alt + Del)로 확인해볼 수 있다.)

 

Computer System

 

운영체제를 공부하기 위해 컴퓨터 구조에 대해서도 이해하고 있으면 좋다. 

 

  • 폰 노이만 구조

컴퓨터는 Main memory, 하나 또는 그 이상의 Processor(CPU), I/O 장치들을 제어하기 위한 I/O Controllers 등이 있다. 그리고 이들은 'BUS'라 하는 데이터 이동 통로로 연결된다. 

 

OS는 보조기억장치의 Storage에 있으며, Main memory에도 Operating System Software가 있다.

 

둘의 관계에 대해 조금 설명을 덧붙이자면, os가 실행가능한 형태 즉 binary code 형태로 비휘발성 장치인 보조기억장치 안에 들어있다. 전원을 꺼도 기억되도록 하기 위함인데, 후에 컴퓨터를 booting시키는 과정에서 main memory에 저장한다.

 

응용 프로그램과 Data도 마찬가지로, 보조기억장치에 있다가 프로그램은 실행하게되면, BUS를 타고와 Main memory로 옮겨들어온다.

 

폰 노이만 구조에서 보조기억장치에 저장되어있는 것은 '보관용'일 뿐, 프로그램이 실행되려면  메인메모리에 복사되어야한다.

 

Kernel? (~=운영체제)

 

운영체제 중에서도 자주 이용되는 핵심 기능으로, 항상 main memory에 들어와 있다.

즉, 구조도에서 memory 안에 있는 Operating System Software를 Kernel이라 볼 수 있으며, 그냥 운영체제 자체로 생각해도 무관하다.