1. 운영체제 개요
2023. 4. 13. 17:28ㆍ운영체제
728x90
운영체제 소개
임베디드 운영체제
- CPU의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제
- 임베디드 운영체제가 있는 기계는 기능을 계속 향상할 수 있음
운영체제의 필요성
- 운영체제가 없어도 작동하지만 기능에 제약이 따른다.
- 운영체제가 있는 기계는 다양한 응용 프로그램을 설치하여 사용 가능
성능 향상을 위한 새로운 기능 추가 가능 - 운영체제는 자원을 관리
-> 사용자가 직접 자원에 접근하는 것을 막음으로써 자원 보호 - 사용자에게 편리한 인터페이스 환경 제공
-> 사용자 인터페이스와 하드웨어 인터페이스를 이용하여 자원 접근 가능
운영체제의 정의
: 사용자에게 컴퓨터 자원을 사용할 수 있는 인터페이스를 제공하고
그 결과를 돌려주는 시스템 소프트웨어
운영체제의 역할
- 자원 관리 (효율성)
-> 적당한 순서로 자원 배분하고 회수하여 관리.
적은 자원으로도 많은 작업량을 처리하도록. - 자원 보호 (안정성)
-> 비정상적인 작업으로부터 컴퓨터 자원을 보호
시스템에 문제가 생겼을 때 이전으로 복구하는 기능 수행. - 하드웨어 인터페이스 제공 (확장성)
-> 사용자가 복잡한 과정 없이 다양한 장치(CPU, 메모리 키보드 마우스)를
추가 또는 제거하기 편하도록 하드웨어 인터페이스 제공 - 사용자 인터페이스 제공 (편리성)
-> 사용자가 편리하게 작업하도록 환경 제공
예) GUI (그래픽 사용자 인터페이스)
운영체제 역사
1. 초창기 컴퓨터 '에니악'
- 운영체제 없음
- 백열전구 같은 모양의 진공관이라는 소자를 사용하여 진공관이 켜지면 1 꺼지면 0이라고 판단
2. 천공카드 시스템
- 천공카드 리더를 입력장치로 , 라인 프린터를 출력장치로 사용
- 일괄 작업 시스템
-> 모든 작업을 한꺼번에 처리.
실행 중간에 사용자가 데이터를 입력하거나 수정하는 것이 불가능한 시스템 - 운영체제 사용
3. 대화형 시스템
- 모니터와 키보드 등장
-> 프로그램이 진행되는 도중에 사용자로부터 입력을 받을 수 있어
입력값에 따라 작업의 흐름을 바꾸는 것이 가능한 시스템 - 다양한 종류의 응용 프로그램을 만들 수 있게 됨
4. 시분할 시스템
- 다중 프로그래밍
-> 하나의 CPU로 여러 작업을 동시에 실행하는 기술
-> CPU 사용 시간을 잘게 쪼개어 작업들에 나누어줌으로써 모든 작업이 동시에 처리되는 것처럼 보임
5. 분산 시스템
- 네트워크상에 분산되어 있는 여러 컴퓨터로 작업을 처리하고 그 결과를 상호 교환하도록 구성한 시스템
6. 클라이언트/서버 시스템
- 작업을 요청하는 클라이언트와 거기에 응답하여 요청받은 작업을 처리하는 서버의 이중구조로 나뉨
-> 웹 시스템
7. P2P 시스템
- 클라이언트 서버 구조의 단점인 서버 과부하를 해결하기 위해 만든 시스템
-> 서버를 거치지 않고 사용자와 사용자를 직접 연결
예) 메신저, 파일 공유
8. 그리드 컴퓨팅
- 필요한 기간만큼만 컴퓨터를 사용하고 사용한 금액만큼만 돈을 지불할 수 컴퓨팅 환경
- 서로 다른 기종의 컴퓨터들을 묶어 대용량의 컴퓨터 풀을 구성하고
이를 원격지와 연결하여 대용량 연산을 수행하는 컴퓨팅 환경 - 그리드는 하드웨어적인 컴퓨팅 환경의 통합.
SaaS(Software as a Service)는 사용자가 필요한 소프트웨어 기능만을 필요할 때 이용하고
이용한 기능만큼만 비용을 지불하는 개념
9. 클라우드 컴퓨팅
- 언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨팅환경으로
그리드 컴퓨팅과 SaaS를 합쳐 놓은 형태 - 데이터 또한 기기들(PC, 스마트기기) 사이에서 자유롭게 이동이 가능한 컴퓨팅 환경
10. 사물 인터넷
- 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술
- 예) 전철이나 버스의 도착 예정시간을 표시한다던가
각종 전자제품을 스마트 폰으로 제어하거나 알림 문자를 받는 서비스
커널과 인터페이스
커널
: 프로세스 관리 메모리 관리 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것
- 프로세스 관리
- 메모리 관리
- 파일 시스템 관리
- 입출력 관리
- 프로세스 간 통신 관리
커널의 구조
단일형 구조(초창기)
- 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성
- 장점: 모듈 간의 통신 비용이 줄어들어 효율적인 운영이 가능
- 단점:
1. 하나로 묶여 있기 때문에 버그나 오류를 처리하기가 어려움.
2. 여러 기능이 서로 연결되어 있어 상호 의존성이 높기 때문에
기능상의 작은 결함이 시스템 전체로 확산될 수 있음
3. 다양한 환경의 시스템에 적용하기 어려움
계층형 구조
- 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고 계층 간의 통신을 통해
운영체제를 구현하는 방식 - 모든 서비스는 커널이 직접관리

마이크로 구조
- 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능은 사용자가 직접 관리 가능해짐
- 커널의 각 모듈은 세분화되어 존재하고 모듈 간의 정보 교환은 프로세스 간 통신을 이용하여 이루어짐

인터페이스
: 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할
가상머신
- 운영체제와 응용 프로그램 사이에서 작동하는 프로그램
- 가상머신을 설치하면 응용 프로그램이 모두 동일한 환경에서 작동하는 것처럼 보임

728x90
'운영체제' 카테고리의 다른 글
| 교착상태 (deadlock) (1) | 2023.05.29 |
|---|---|
| 5. 프로세스 동기화 (0) | 2023.04.14 |
| 4. CPU 스케줄링 (0) | 2023.04.14 |
| 3. 프로세스와 스레드 (2) | 2023.04.13 |
| 2. 컴퓨터 구조와 성능 향상 (2) | 2023.04.13 |