읽은 책 정리/쉽게 배우는 운영체제

[정리] 01 운영체제의 개요

포포015 2022. 8. 18. 22:11

 

목차

  • 1. 운영체제 소개
  • 2. 운영체제 역사
  • 3. 운영체제 구조

 

 

1. 운영체제 소개

대표적인 운영 체제로는 윈도우 , MAC OS, 유닉스 , 리눅스 등이 있다..  이중 유닉스에 대해 집중적으로 알아볼 예정이다.

임베디드 운영체제 - 이 운영체제는 CPU 성능이 낮고 메모리 크기가 작은 시스템에 내장되도록 만든 운영체제이다.

 

* 운영체제가 있고 없는 시스템의 차이로는 운영체제가 있는 시스템은 기능을 추가하거나 성능 향상을 꾀할수 있고,

  없는 시스템은 그냥 최초에 만들었던 그 상태에서 변경하지 못한다.

 

 

1.1 운영체제의 정의

한마디로 정의하자면 사용자에게 편리한 인터페이스 환경을 제공하고

컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트 웨어 이다.

 

* 키보드나,마우스, 스피커 이런 하드웨어 장비들은 운영체제가 있기에 정상 작동할수 있는것이다. (뒤에 추가적인 설명 있음)

 

1.2 운영체제의 역할과 목표

1) 자원관리(효율성) - 컴퓨터의 여러 자원을 응용프로그램에 알맞게 나누어주어 사용자가 원할하게 작업하도록 도와준다.

                    (만약 운영체제가 자원관리를 하지않는다면, 각 응용프로그램이 모든 자원을 차지할수 있는데 운영체제가 방지해준다.)

2) 자원보호(안정성) - 악의적인 사용자나 미숙한 사용자로부터 자원보호

                   (컴퓨터의 내부파일을 직접 사용자가 관리한다면, 음식점으로 치잠녀 손님이 주방가서 직접 요리하는것이다.. 개판날수있다..)

3) 하드웨어 인터페이스 제공(확장성) - 사용자에게 복잡한 과정없이 다양한 장치를 사용할수 있도록 해주는 하드웨어 인터페이스 제공

                    (운영체제가 있기에 사용자는 다양한 하드웨어를 손쉽게 사용할수 있다.)

4) 사용자 인터페이스 제공(편리성) - 운영체제를 편리하게 사용할수 있도록 그래픽 인터페이스(GUI)를 제공한다.

                     (이거 제공안했으면 명령어로만 제어해야하는 불편한 컴퓨터를 사용해야할것이다.. 불편쓰..)

 

 

2. 운영체제의 역사

구분 시기 주요기술 특징
0기 1940년대 최초의 컴퓨터! 에니악등장! 진공관 (0과 1)의 사용
1기 1950년대 카드리더, 라인프린터 
(키보드와 모니터와 비슷한 개념)
- 일괄 작업 시스템
- 운영체제의 등!장!
2기 1960년 초반 키보드, 모니터 - 대화형 시스템 등장
3기 1960년 후반 C언어 - 다중 프로그래밍 기술개발
- 시분할 시스템 
4기 1970년대 PC - 개인용 컴퓨터 등장
- 분산 시스템
5기 1990년대 - 클라이언트/ 서버시스템
6기 2000년대 스마트폰 - P2P (메신저, 파일공유)
- 그리드 컴퓨팅
- 클라우트 컴퓨팅
- 사물 인터넷

 

 

3. 운영체제의 구조

3.1 커널과 인터페이스

- 커널이란 프로세스 관리, 메모리 관리, 저장 장치 관리와 같은 운영체제의 핵심적인 기능을 담당하는곳이다.

  (책에서는 커널을 자동차의 핵심인 엔진으로 표현했다.)

- 인터페이스란 우리가 운영체제가 제공하는 사용자 인터페이스 제공 부분이다. 

   운영체제의 인터페이스는 사용자가 어떤 액션을 취하면 운영체제의 인터페이스가 사용자의 액션을 커널에 요청하는것이다.

* 참고로 같은 커널이라도 운영체제의 인터페이스가 다르다면 사용자는 다른 운영체제 처럼 보인다.

  ( 유닉스 커널을 사용하고 있는 mac / linux / bash 등 여러개 인데, 인터페이스가 다르기에 사용자는 다른 운영체제처럼 보인다.) 

3.2 시스템 호출과 디바이스 드라이버

1) 시스템 호출 - 커널이 자신을 보호하기 위해 만든 인터페이스.

                         (커널은 사용자나 응용프로그램으로부터 직접 자원에 접근하는것을 차단하고, 인터페이스를 통해 접근하는 방식이다.)

            * 직접 접근을 못하게하고, 시스템 호출을 통한 접근은 방법은 위에 적혀 있는 운영체제가 자원보호하는 개념이다.

 

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

              ( 커널은 입출력의 기본적인 부분만 제작하고, 하드웨어 특성을 반영한 소프트웨어를 제작자에게 받아 커널이 실행될때 같이 구동)

                 * 위의 이미지에서 드라이버가 커널을 전체적으로 감싸지 않은이유는

                    필요시 하드웨어 제작자가 제공하는 드라이버를 설치하도록 확장성을 열어둠  

 

3.3 커널의 구성 

- 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리, 프로세스간 통신관리

  커널은 위의 기능을 구현 방법에 따라 크게 3가지로 나뉜다.

 

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

                                  ( 완전 예전의 운영체제.)

 

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

                                     ( 윈도우나 대부분의 운영체제는 위의 커널로 구성되어있다고 한다.)

 

3) 마이크로 구조 커널 - 커널은 메모리 관리, 프로세스 간의 동기화 서비스 제공.

                                     메모리 관리화 동기화 모듈은 프로세스 간 통신 모듈로 연결되어있다.

                                  ( MAC OS가 이 구조로 되어 있다고하는데 이해가 안간다 어렵다... ㅠ.ㅠ)

 

4) 가상 머신 - 보통 예전에 나온 프로그래밍 언어로 만든 응용프로그램들은 운영체제에 따라 다르게 구현했어야했는데

맥도만들고,, 윈도우도 만들고,, 리눅스,, 너무 귀찮아... 이래서 나온게 가상머신이라는 개념이다.     

                             (운영체제 위에 가상머신을 설치하고 그위에 응용프로그램이 돌아가는 구조라고 생각하면된다.) 

                             대표적으로 자바의 JVM이 있다.