운영체제

Vorhandenheit ·2022년 2월 3일
0

Computer Science

목록 보기
2/6
post-thumbnail

운영체제(Operating System)

운영체제는 컴퓨터의 하드웨어를 관리하고, 하드웨어와 소프트웨어, 사용자를 매개하는 프로그램입니다. 커널은 운영체재의 핵심이며, 실체입니다. 운영체제는 커널과 커널 모듈들로 구성되는데, 커널이 운영체제의 핵심이다보니 일반적으로 운영체재와 커널은 동일시되고 커널이 같다면 같은 운영체제로 취급합니다.
운영체제의 역할은 사용자 관점과 시스템관점으로 나눌 수 있습니다.

쉽게애기하면 사용자가 컴퓨터 하드웨어를 모르더라도 컴퓨터를 쉽게 만들 수 있도록 지원해주는 소프트웨어가 운영체제입니다.

1. 운영체제 목적

  • 처리능력(Throughtput) : 일정 시간 내에 시스템이 처리하는 일의 양
  • 반환시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부처 처리가 완료될 때까지 걸린 시간
  • 사용가능도(Availability) : 시스템을 필요가 있을 때 즉시 사용 가능한 정도
  • 신뢰도(Realiability) : 시스템이 주어진 문제를 정확하게 해결하는 정도

2. 운영체재 종류

3. 운영체제의 기능

  1. 프로세서, 기억장치, 입출력장치, 파일 및 정보등의 자원을 관리합니다.
  2. 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공합니다.
  3. 사용자와 시스템간의 편리한 인터페이스를 제공합니다
  4. 시스템의 각종 하드웨어와 네트워크를 관리, 제어합니다.
  5. 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공합니다.
  6. 시스템의 오류를 검사하고 복구합니다.
  7. 자원 보호 기능을 제공합니다.
  8. 입출력에 대한 보조 기능을 제공합니다.
  9. 가상 계산기 능력을 제공합니다.

3. 운영체제 서비스

  • 사용자 인터페이스(User Interface) : 사용자 인터페이스는 명령어 단위로 처리되는 '명령어 라인 인터페이스'(CLI)와 '그래피컬 사용자 인터페이스'(GUI) 로 나누어집니다.

  • 프로그램 실행(Program execution) : 운영체재를 통해 프로그램을 메모리에 올려서 프로세스로 만들고 실행시킬 수 있어야합니다.

  • 입출력 연산(I/O operation) : 프로세스는 모니터나 파일을 통해 입출력을 시스템에게 요구할 수 있다.일반적으로 사용자들은 입출력장치를 제어할 수 없다

  • 파일 시스템 조작(File System Manipulation) : 프로그램은 파일을 읽거나 쓸 수 있어야하며, 이름으로 생성, 삭제, 검색할 수 있어야한다

4. 운영체제 구조

  • 커널 : 운영체제의 핵심으로 운영체제가 수행하는 모든 것이 저장되어있습니다.

  • 명령어 해석기(shell) : 사용자가 커널에 요청하는 명렁어를 해석하여 커널에 요청하고 그 결과를 출력합니다.

  • 시스템 호출
    커널이 자신을 보호하기 위해 만든 인터페이스 입니다. 커널은 사용자나 응용 프로그램으로부터 컴퓨터 자원을 보호하기 위해 직접 접근한느 걸 차단합니다.
    자원을 이용하기 위해서는 시스템 호출이라는 인터페이스를 사용하여 접근해야합니다.

  • 드라이버
    응용 프로그램과 커널의 인터페이스가 시스템 호출이라면 커널과 하드웨어의 인터페이스는 드라이버가 담당합니다. 하드웨어 제작자가 만든 소프웨어를 디바이스 드라이버라고 부릅니다.

(1) 커널의 구성

커널이 주로 하는 일은 메모리 관리, 프로세스 관리, 파일 시스템 관리, 입출력관리, 프로세스 통신관리 등이 있습니다.

  • 프로세스 관리 : 프로세스에 CPU를 분배하고 작업에 필요한 제반 환경 제공
  • 메모리 관리 : 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간 제공
  • 파일 시스템 관리 : 데이터 저장하고 접근 할 수 있는 인터페이스 제공
  • 입출력 관리 : 필요한 입출력 서비스 제공
  • 프로세스 간 통신 관리 : 공동 작업을 위한 각 프로세스 간 통신 환경 제공

A. 단일형 구조 커널

초창기의 운영체제 구조로, 커널의 핵심 기능을 구현하는 모델을 구분 없이 하나로 구성

  • 장점 : 모듈이 거의 분리되지 않았기 때문에 모듈 간의 통신 비용이 줄어들어 효율적 운영가능
  • 단점
    1.모든 모듈이 하나로 묶여 있기 때문에 버그나 오류 처리하기가 어렵습니다.
    2.운영체제의 여러 기능이 서로 연결되어 있어 상호 의존성이 높아 기능상 작은 결합이 전체 시스템 성능 문제를 야기합니다.
  1. 다양한 환경시스템 적용이 어렵습니다.

B. 계층형 구조 커널

단일한 구조 커널이 발전된 형태로, 비슷한 기능을 가진 모듈을 묶어서 하나의 계층을 만들고 계층 간의 통신을 통해 운영체제를 구현하는 방식입니다.

  • 비슷한 기능을 모아 묘듈화했기 대문에 단일형 구조보다 버그나 오류 쉽게 수정가능합니다.
  • 오류 발생 시 해당 계층만 고치기 되기 때문에 디버깅도 수월합니다.

C. 마이크로 커널 구조

중요치 않은 구성요소를 커널로부터 제거하고, 그들의 별도의 주소 공간에 존재하는 사용자 수준 프로그램으로 구현하였습니다.

  • 운영체제의 확장이 쉽습니다.
  • 더욱 높은 보안성과 신뢰성을 제공합니다.

출처

https://parksb.github.io/article/5.html
https://velog.io/@codemcd/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-1.-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EB%9E%80
https://math-coding.tistory.com/80
https://4legs-study.tistory.com/32

profile
읽고 기록하고 고민하고 사용하고 개발하자!

0개의 댓글