[CS 스터디] 운영체제 2일차 - 운영체제 구조

강아람·2022년 12월 26일
0

운영체제

목록 보기
2/11
post-thumbnail

📚 운영체제 구조

운영체제 유형

📖 일괄처리 시스템 (Batch Processing System)

유사한 작업들끼리 일정량 또는 일정 시간 묶어서 처리하는 방식
컴퓨터 시스템을 효율적으로 사용할 수 있지만 하나의 작업이 모든 자원을 독점하므로 CPU 유휴 시간(직접 사용되는 시간)이 감소

📖 다중 프로그래밍 시스템 (Multi Programming System)

하나의 CPU와 주기억 장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
CPU와 대화하면서 처리가 가능하여 CPU 사용률과 처리량이 증가

시분할 시스템 (Time Sharing System)

시간을 분할하여 여러 사용자들에게 컴퓨터 자원을 번갈아가며 할당하면 사용자는 자신이 컴퓨터를 독점하고 있다는 느낌을 갖게 됨

실시간 시스템 (Real-time SYstem)

단말기의 요청을 즉시 처리하여 결과를 반환하는 시스템

📖 다중처리 시스템 (Multi-processing System)

여러 대의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
단일 운영체제에 의해 관리되며, 하나의 CPU가 고장나더라도 시스템의 신뢰성과 안정성을 보장

분산 컴퓨팅 (Distributed Computing)

넷상으로 연결된 여러 대의 컴퓨터들의 처리 능력을 이용하여 복잡한 계산 문제를 해결하려는 분산 처리 모델


운영체제 부팅 과정

1. BIOS (Baxic Input Output System)

제일 먼저 CPU가 켜지고, CPU는 ROM(비휘발성 메모리)에 있는 BIOS 데이터를 읽어온다.

ROM은 Read-only memory이기 때문에 항상 같은초기 프로그램을 실행한다. 이 프로그램을 부트스트랩이라고 한다. CPU, register 등을 초기화시켜 컴퓨터가 정상적으로 새로운 연산 하도록 한다.

2. POST (Power On Self Test)

BIOS는 하드웨어의 정상 작동 검사를 한다.

3. 부트스트랩 (Bootstrap)

POST에 이상이 없으면 BIOS는 부트스트랩을 실행하여 부팅 정보(부트로더)를 메모리로 읽어온다.

4. 부트로더 (Bootloader)

부트로더는 디스크에 있는 운영체제(OS) 코드를 메모리로 읽어온다. 즉, 앞에서 읽어온 부팅 정보는 부트로더(Bootloader)이다.
운영체제는 메모리에 상주하지 않지만 커널은 메모리에 상주한다.

부트로더는 MBR(Master Boot Record)에서 OS 실행 코드를 읽어오는데, MBR은 디스크가 분리되는 가장 바깥 지점에 있다.

5. 운영체제(OS) 실행

읽어 온 운영체제 명령에 의해 CPU는 첫 프로세스(Daemon)를 즉시 실행한다. 이후, 인터럽트가 발생하면 각종 작업을 처리한다.


커널과 인터페이스

![](https://velog.velcdn.com/images/ramu/post/2e89e360-79b5-44ab-81c9-df52d7d5265f/image.png)

커널

프로세스 관리, 메모리 관리, 저장장치 관리 등 운영체제의 핵심 기능을 수행하기 때문에 운영체제의 성능을 좌우함

인터페이스

사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할

시스템 호출 (System Call)

커널이 자신을 보호하기 위해 만든 인터페이스

  • 사용자나 응용 프로그램이 컴퓨터 자원을 사용하기 위해 시스템 호출을 사용해야 함
  • 보통은 함수의 형태로 제공

드라이버 (Driver)

커널과 하드웨어의 인터페이스 담당

  • 컴퓨터 하드웨어의 종류는 다양하기 때문에 각 하드웨어에 맞는 운영체제 인터페이스 개발 어려움 존재 ▶ 하드웨어 제작자가 만든 소프트웨어를 통해 커널과 하드웨어 연결 (디바이스 드라이버)

커널의 구성 및 종류

커널의 역할

자원 관리 (Resource Management)

  • 주소 공간과 그 내부 리소스에 대한 액세스를 중재할 수 있는 보호 매커니즘을 정의한다.
  • 동기화와 IPC를 위한 방법을 제공한다.
  • 프로세스나 스레드 사이의 Context Switching(문맥 교환)도 커널이 담당한다.

메모리 관리 (Memory Management)

  • 시스템 메모리에 대한 전체 액세스 권한을 가진다.
  • 프로세스가 메모리에 안전하게 액세스할 수 있도록 허용해 주어야 한다.
  • 페이징 기법, 파티션 기법 등을 활용해 메모리를 관리한다.

장치 관리 (Device Management)

  • 장치 드라이버는 OS가 하드웨어 장치와 상호작용 할 수 있도록 도와주는 프로그램이다.
  • 커널은 장치 드라이버를 이용해 컴퓨터 주위의 프린터, 마우스 등의 장치를 제어한다.


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


커널의 종류

단일형 구조 : 초창기 운영체제 구조로, 커널 핵심 기능 모듈의 구분 없이 하나로 구성되어 있다.
모듈 간 통신 비용이 줄어들지만 버그나 오류 처리가 어렵고, 작은 결함이 시스템 전체로 확산될 가능성이 있다.


계층형 구조 : 비슷한 기능의 모듈을 묶어 계층화하고, 계층 간의 통신을 통해 운영체제를 구현한다.
단일형에 비해 버그나 오류 처리가 쉽지만 하나의 계층에 오류가 발생하면 다른 계층도 동작하지 않을 수 있다. 또한 운영체제의 규모가 커지면 커널의 크기가 커져 하드웨어의 용량이 늘어난다.


마이크로 구조 : 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 기본 기능만 제공하고 나머지 기능은 사용자 영역에 구현되어 있다.
각 모듈이 독립적으로 동작하기 때문에 하나의 모듈 에러가 운영체제 전체에 영향을 주지 않고, 커널이 가벼워 CPU 용량이 적다. 그러나 모듈의 독립성으로 인해 모듈 간 통신에 의해 성능이 저하될 수 있다.


하이브리드 구조 : 단일형 구조와 마이크로 구조 개념을 합친 것으로, 본질적으로 마이크로 구조와 같지만 사용자 레벨에서 수행될 때 느린 코드들을 커널 레벨에서 수행하도록 수정한 구조를 말한다.




질문 1

운영체제가 제공하는 서비스와 기능은 크게 두 범주로 나눌 수 있는데. 두 범주를 간략히 설명하고 차이점을 설명하세요.

사용자 측면과 시스템 측면으로 나눌 수 있습니다.
사용자 측면에는 사용자 인터페이스와 보안/보호 서비스가 있습니다.
시스템 측면에는 프로그램 수행, 입출력 연산, 파일 시스템 조작, 통신, 오류 탐지 등이 있습니다.

질문 2

마이크로 구조의 커널이 무엇이고, 해당 구조의 장단점이 무엇인가요?

마이크로 구조 커널은 필수 기능에 대한 모듈만 제공하고 나머지 기능은 사용자 영역에 구현한 커널 구조입니다.
각 모듈이 독립적으로 동작하기 때문에 하나의 모듈 에러가 시스템 전체에 영향을 미치지 않고, 커널이 가벼워 CPU 용량이 적어지는 장점이 존재하지만 모듈의 독립성으로 인해 모듈 간 통신이 증가하면 성능이 저하된다는 단점이 있습니다.

0개의 댓글