본문 바로가기
CS/Operating System

[ OS 기초 ] 01. OS개요(2)

by IM조이 2021. 6. 21.

1. 운영체제의 구조(내부)
2. 운영체제의 기능

00 도입

복습 : 운영체제는 하드웨어를 잘 관리해 사용자와 응용 어플리케이션 프로그램에 서비스를 제공하는 것

 

01 운영체제의 구조

운영체제는 크게 커널과 유틸리티로 나눌 수 있다

01-1 커널
단어 의미 그대로 알맹이, 즉 핵심이다. 커널은 우리가 가장 자주 사용하는 핵심 기능(프로세서, 메모리 관리 등)을 모아놓은 부분이다. 이러한 기능들은 항상 사용하는 기능이라서 메모리에 상주하고 있어 상주 프로그램, 핵, 관리자 프로그램, 제어 프로그램 등으로 불린다.

02-2 유틸리티
유틸리티는 운영체제에서 커널을 제외한 부분으로, 자주 사용하지는 않지만 가끔씩 사용하기때문에 비상주 프로그램에 속한다. 이들 프로그램은 필요할 때만 메모리에 올려서 실행한다. 

이를 간단히 정리하면 아래와 같이 표현할 수 있다.

  • 운영체제 = 커널 + 시스템 콜 + 유틸리티
  • 하드웨어 > 커널 > 시스템 콜 > 유틸리티 > 프로그램

참고 - 시스템 콜은 커널에 작업을 요청하는 통로라고 이해하면 된다

 

02-3 운영체제의 구조에 따른 분류

02-3-1 단일구조
운영체제의 기능을 하나의 거대한 커널로 모아놓은 구조로, 마치 C언어에서 main함수 안에 모든 기능을 담아놓은 것에 비유할 수 있는 구조다.
- 장점 : 모듈 간 직접 통신이 가능하므로 빠르고 효율적으로 관리할 수 있다
- 단점 : 커널이 거대화 되어 오류나 버그가 발생했을 때 유지보수가 어렵다. 또 특정 모듈에 문제가 생겼을 경우 전체 시스템에 영향을 줄 수 있다.

02-3-2 계층 구조
현대 운영체제의 대부분이 계층 구조에 해당하며, 기능별로 따로 분리하는 모듈화 된 커널이다.
- 장점 : 유지보수에 용이하고 설계와 구현이 단순하다.(각 모듈의 기능 구현에만 집중하면 되기 때문에)
- 단점 : 단일 구조 대비 성능이 조금 낮고 계층 간 통신이 필요하다.

02-3-3 마이크로커널 구조
커널을 최소화 해서 메모리, 프로세스 간 통신, 프로세스 관리 정도의 작업만 하는 구조. 즉, 커널에 필수 기능만 담고 나머지는 사용자 영역에서 수행하게 된다.

 

02 운영체제의 기능

운영체제의 핵심은 '관리 기능'이다. 크게 다음과 같은 관리 작업을 한다.

  • 프로세스 관리
  • 프로세서 관리
  • 메모리 관리
  • 파일 관리
  • 입출력 관리
  • 보조기억장치 및 기타 주변 장치 관리

 

02-1 프로세스 관리
프로세스란 수행중인 프로그램, 즉 커널에 등록된 실행 단위를 의미한다. 사용자의 요청을 처리하고 해당 기능을 수행하는 주체가 프로세스이며 운영체제가 관리하는 소프트웨어적인 리소스에 해당한다.

  • 프로세스 생성, 삭제, 상태관리, 자원 할당 작업
  • 프로세스 간 통신 및 동기화 작업
  • 프로세스 간 자원 경쟁(교착 상태, deadlock)에서 중재하는 역할
  • 프로세스의 정보 관리를 위한 PCB(Process Control Block)을 갖고 있음

02-2 프로세서 관리
프로세서는 cpu라고 생각해도 무방하며, 운영체제가 관리하는 하드웨어적인 리소스에 해당한다.

  • 프로세스 스케줄링 작업 (어떤 작업요청부터 처리할지 관리하는 작업)
  • 프로세서 할당 관리 작업 (어떤 작업에 얼만큼의 프로세서를 할당할지 프로세스에 대한 프로세서 할당)
    - 한 번에 하나의 프로세스만 사용할 수 있기 때문

02-3 메모리 관리
메모리(주기억장치 - DRAM) 관리도 운영체제의 역할 중 하나로, 한정적인 메모리를 어떤 프로세스에 할당해주고 회수할 것인지 공간 관리 및 영역 접근 보호 등의 관리작업을 수행한다. (여러명, 여러 프로세스가 하나의 메모리를 공유하기때문)

메모리 할당 방법
- 전체 적재 : 구현은 가능하지만, 현실적으로 어렵다(공간이 제한적)
- 일부 적재 : 프로그램이나 데이터의 일부만 적재함으로써 메모리를 효율적으로 사용할 수 있으나, 가상메모리 활용을 위해 보조기억장치에의 접근이 필요

02-4 파일 관리
대표적인 소프트웨어 리소스인 파일도 운영체제의 관리 대상. (파일 : 논리적인 데이터의 저장 단위)

  • 파일 저장을 위한 디렉토리 생성 및 삭제, 조회 등의 기능을 지원하고 수정, 백업, 매핑도 담당

02-5 입출력 관리
입출력은 반드시 운영체제를 거친다. 프로세스에서 입출력 관련 요청을 운영체제로 보내면, 운영체제의 커널을 거쳐 사용자 입출력 영역과의 통신이 가능해진다.

02-6 기타 장치 관리
위에서 살펴본 소프트웨어, 하드웨어 자원 이외에도 운영체제는 디스크, 네트워크, 보안, 보호 등의 작업을 담당하고있다.

 

**  KOREATECH 무료 OS강의(클릭) 학습 후 나름대로 이해한 뒤 정리한 내용입니다. **

 

[Course] Operating System (CPA310) - 운영체제 강의

o Operating System (운영체제), CPA310, KOREATECH o Instructor: Duksu Kim (김덕수) o Course homepage: https://sites.google.com/view/hpclab/courses/operating-system 운...

www.youtube.com

 

'CS > Operating System' 카테고리의 다른 글

[ OS 기초 ] 04. 프로세스 스케줄링  (0) 2021.06.24
[ OS 기초 ] 03. 스레드 관리  (0) 2021.06.23
[ OS 기초 ] 02. 프로세스 관리  (0) 2021.06.23
[ OS 기초 ] 01. OS개요  (0) 2021.06.20
[ OS 기초 ] 00. CS 개요  (0) 2021.06.17

댓글