운영체제

운영체제-

chaeit1904 2024. 9. 24. 20:31

운영체제란


운영체제는 3가지 역할을 가지고 있다.

 

1. 조정자

 

2. 자원 관리자

 

3. 입출력장치와 사용자 프로그램 제어 역할

 

이 3가지 역할을 수행한다.


운영체제는 또한 4가지 목적성을 가지고 있다.

 

1. 편리성 : 사용자 인터페이스 제공

 

2. 효율성 : 같은 자원으로 최대 성능, 최대 효율을 유지한다.

 

3. 안정성 : 자원을 보호한다.

 

4. 확장성 : 하드웨어 인터페이스 제공


운영체제는 어떤 유형이 있을까…

 

1.     Multi Programming System

2.    Time Sharing System

3.    Distributed Processing System

4.    Multi Processor System

5.    Desktop System

6.    Cluster System

7.    Real-Time System

8.   Client-Server System

9.   P2P System

10. IOT

11. Cloud Computing

12. Edge Computing

 

이렇게 12개의 유형이 존재한다.


Multi Programming System

 

이 유형은 대부분의 프로그램의 3단계 입력-처리-출력에서 각 단계 진행 중에 다른 단계가 놀게 되는 문제를 해결하기 위해 등장하였다.

 

핵심 : 하나의 CPU로 여러 작업(프로세스)를 동시에 실행한다. 하나의 메모리에 여러 프로세스를 적재하여, 동시에 2개 이상의 프로세스를 실행한다.


Time-Sharing System

 

핵심 : 하나의 CPU의 사용 시간을 분할하여 각각의 프로세스에게 분배한다. CPU의 사용 시간을 잘게 쪼개어 여러 작업으로 나누어 모든 작업을 동시에 처리하는 시스템이다.


Distributed Processing System

 

처리해야 할 작업이 하나의 컴퓨터로 감당하기 힘들 때 여러 대의 컴퓨터로 실행하는 방식이다.

 

작업을 분할하여 여러 컴퓨터로 실행 -> 다시 합쳐 작업을 처리하는 방식이다.

네트워크 상에 있는 여러 컴퓨터로 작업을 처리하기 때문에 네트워크로 상호 연결되어 있어야 한다.


Multi Processor System

 

CPU를 n개 사용하여 처리율, 신뢰성을 증가시키고 비용을 절감하는 방식이다.

 

2가지 유형이 존재:

 

SMP (Symmetric Multiprocessing): 모두 동일한 프로세서, 성능이 우세하다.

 

AMP (Asymmetric Multiprocessing): 프로세서 간 주/종 관계 형성. 마스터 프로세서와 슬레이브 프로세서로 구성된다.


Desktop System

 

단일 사용자 시스템이다.


Cluster System

 

여러 대의 컴퓨터들로 하나의 네트워크를 구성하여 빠른 처리를 보장하는 방식이다.

 

성능의 최대 상승과 안정성을 극대화할 수 있다.

여러 대의 컴퓨터이므로 한 곳에서 문제가 발생해도 처리가 가능하다.


Real-Time System

 

특정 시간 이내에 작업이 처리되도록 보장하는 시스템이다.

 

2가지 유형:

 

1. Hard Real-Time System : 지정한 응답 시간을 정확히 지켜야 한다.

 

2. Soft Real-Time System : 최대한 지키되 융통성이 허용되는 시스템이다.


Client-Server System

 

서비스를 요청하는 클라이언트/ 서비스를 제공하는 서버로 이중 구조 형태이다.

 

대부분의 웹 기술이 이 구조에 해당되며 파일 입출력 기능이 탄탄해야 한다.

서버에 과부하가 일어날 수 있는 단점이 있다.

 


P2P System

 

서버를 거치지 않고 사용자와 사용자를 직접 연결하는 방식이다.

 

서버의 부하를 분산할 수 있고, 부하 없이 빠른 속도가 보장된다.

이에 해당하는 기술로는 블록체인 기술이 있다.


IOT

 

사물에 센서와 통신 기능을 내장하여 인터넷에 연결한다.

 

이를 통해 사물들이 서로 데이터를 주고받을 수 있다.

주고받은 데이터를 이용해 스스로 분석, 정보 제공, 새로운 서비스를 창출할 수 있다는 장점이 있다.


Cloud Computing

 

하드웨어를 포함한 시스템이 구름에 가려진 것처럼 사용자에게 보이지 않는 컴퓨팅 환경을 말한다.

 

언제 어디서나 프로그램과 데이터를 자유롭게 사용할 수 있는 것이 장점이다.


Edge Computing

 

IOT가 발전할수록 센서의 수가 많아지기 때문에 문제가 발생할 수 있다.

 

문제점:

 

1. 네트워크 전송량 증가

2. 클라우드 서버 부하 증가

 

이를 해결하기 위해, 클라우드와 IOT 경계에서 처리할 수 있는 데이터를 처리하여 부하를 감소시키는 방식이다.


운영체제의 발전과정에 대해서 알아보자…

 

과거에는 작업을 처리할 때 수작업을 처리하였다.

 

그 이후 조금 발전하여 수작업은 일괄작업시스템이 되었다.


초기 일괄작업시스템 : 역할이 명확하다. 각 작업별로 사람이 전달해줘야 하는 라인오프 방식이었다.

 

이 방식은 더 발전하여 사람의 수작업을 배제한 온라인 시스템으로 발전하였다.

 

하지만 여전히 각 작업별 처리 속도가 다르다는 비효율 측면에서의 문제점이 남아 있었다.

 

이를 위해 버퍼가 등장하였다.

 

각 작업별로 다른 처리 속도를 버퍼를 이용해 저장해놓고 처리를 하는 방식으로 처리 속도의 차이에 따른 비효율을 해결하였다.

 

버퍼의 위치는 메모리로, 최근에는 Spooling이라는 버퍼를 메모리 사용 없이 디스크로 대체할 수 있게 하는 기술이 등장하였다.


운영체제의 기능에 대해서 알아보자…

 

운영체제에 세부 기능에는 자원 관리 기능이 존재한다.

 

자원 관리 기능은 운영체제의 핵심 기술로 CPU, 메모리, 디스크 등 자원의 할당을 관리한다.


자원 관리 기능 속에는:

 

1. 메모리 관리 기능

2. 프로세스 관리 기능

3. 입출력 장치 기능

4. 파일 관리 기능

 

이 존재한다.


메모리 관리 기능

 

메인 메모리를 관리하는 기능으로, secondary 메모리도 관리한다.

 

프로세스 관리 기능

 

프로세스란 실행 중인 프로그램을 말하는 개념으로, 실행을 위해 자원이 할당된 프로그램을 말한다.

 

자원에는 프로세서 점유, 메모리, 파일, 입출력 장치 등이 이에 해당한다.

 


운영체제가 프로세스를 관리하는 사항에는

 

1. 프로세스의 생성과 제거

2. 중지와 재수행

3. 동기화 기법

4. 상호 통신

5. 교착 상태 방지

 

총 5개가 존재한다.


입출력 장치 기능

 

사용자가 자세한 하드웨어 특성을 잘 알지 못해도 사용 가능하도록 하는 기능을 말한다.

 

프로세서와 I/O 디바이스 간의 처리 속도의 차이를 해결한다.

또한 장치 관리자의 역할도 담당하고 있다.


파일 관리 기능

 

다양한 저장 장치를 동일한 방식으로 사용할 수 있도록 기능을 제공한다.

 

파일의 생성과 제거, 디렉토리의 생성과 제거를 지원한다.

또한 파일 시스템의 기능을 제공하며, 쉽고 일관된 방법으로 사용 가능하도록 한다.


운영체제의 서비스

 

지원하는 서비스에는 시스템 호출 서비스부팅 서비스가 존재한다.


시스템 호출 서비스

 

커널을 보호하기 위해 만든 인터페이스로, 공유 자원들을 사용하면서 다른 프로그램의 영역을 침범하거나 침해하는 것을 막기 위해 커널 모드가 등장하였다.

이 커널을 보호하기 위한 기능을 지원하는 서비스이다.

만약 이 서비스가 없다면 사용자가 직접 접근해야 하는데, 이 경우 2개 이상의 요청이 겹칠 경우 문제가 발생할 수 있다.

따라서 중간에 시스템 호출 인터페이스를 배치한다.


부팅 서비스

 

부팅이란 운영체제가 메모리로 로딩되는 과정을 의미한다.

**Boot Strap Loader(적재기)**란 운영체제를 메모리로 로딩하는 프로그램이다.

 

부팅 서비스 과정:

 

1. 부트 스트랩 로더를 실행

2. 로더는 디스크의 고정 트랙에 저장된 운영체제를 주기억 장치에 적재한다

3. 그 후 램에 적재한다

4. JMP 명령을 이용하여 운영체제를 실행한다


운영체제의 구조

 

운영체제는 계층적 구조를 가지고 있다.

 

계층화: 유사한 기능끼리 그룹으로 묶는 것을 말한다.

 

모듈화: 계층 간 독립성, 검증과 오류 수정을 용이하게 만든다.


운영체제는 커널의 구조에 따라 분류가 가능하다..

 

커널이란 메모리에 상주하는 운영체제의 핵심 모듈이다.

 

단일 커널 시스템: 시스템 콜 인터페이스 밑에 전체 커널이 존재하기 때문에 심플한 구조이다.

단점: 하나의 문제가 시스템 전체에 영향을 끼칠 수 있다.

 

이 단점 개선을 위해 마이크로 커널이 등장하였다.

 

마이크로 커널: 필수 기능은 모두 포함하되 나머지는 유저 모드로 올려 가볍고, 한 문제가 다른 계층에 영향을 끼치는 것을 막을 수 있다.

장점: 서버의 개발이 용이하며 운영체제 기능 변경이 쉽다.

활용: 이러한 장점 덕분에 실시간 시스템에 주로 활용된다.

 

하지만:

 

프로세스 간 통신 발생의 최소화 필요성이 있으며, 시스템 호출이나 IPC(Inter-Process Communication)가 많아져 실행이 늦어질 수 있다.


 

'운영체제' 카테고리의 다른 글

IPC, 사례연구  (0) 2024.10.12
동기화와 세마포어  (0) 2024.10.10
병행 프로세스와 병렬 프로세스  (1) 2024.09.29
비동기 병렬프로세스  (1) 2024.09.29
운영체제 프로세스  (1) 2024.09.25