■ 정의
· 편리한 인터페이스를 제공하고 시스템의 자원을 효율적으로 관리하는 프로그램
■ 운영체제의 필요성
· OS가 없어도 작동은 가능하다 (ex. 에니악)
· 컴퓨터의 성능 향상, 효율적인 자원 관리, 인터페이스를 제공하기 때문에!
■ 역할
1. 자원 관리 : 자원을 응용 프로그램에게 분배·회수한다.
2. 자원 보호 : 비정상적인 작업(다른 영역 침범 등)을 방지한다.
3. 하드웨어 인터페이스 제공 : 드라이버를 자동 설치함으로 HW 상관없이 사용 가능케 한다.
4. 사용자 인터페이스 제공 : 사용자가 운영체제를 편리하게 사용할 수 있게 한다.
■ 목표
1. 효율성 : 같은 자원으로 많은 작업을, 같은 양의 작업을 더 작은 자원으로 가능하게 한다.
2. 안정성
3. 확장성 : 다양한 자원의 추가·제거가 편리해야 한다.
4. 편리성
■ 운영체제의 역사
· 일괄 작업 시스템('50) : 모든 작업을 한 번에 처리(중간에 수정, 입력 불가)
→ 입력 : 천공카드 리더 / 출력 : 라인 프린터
· 대화형 시스템('60 초) : 키보드와 모니터의 개발로 대화식의 처리가 가능해짐
· 시분할 시스템('60 후) : 효율성을 위해 '다중 프로그래밍' 개발
→ 다중 프로그래밍 : 1개의 CPU로 여러 개의 작업을 동시에 실행 (시분할 시스템 기반)
→ 시분할 시스템(다중 작업) : 여러 작업을 조금씩 처리해 동시에 작업하는 것과 같은 효과를 보임
· 분산 시스템('70 후) : 작은 컴퓨터들을 묶어 대형 컴퓨터와 버금가는 시스템을 구현
→ 네트워크의 등장으로 가능해졌다.
· 클라이언트/서버(2000~) : 이중구조 / 과부하의 문제를 가진다.
· P2P 시스템 : 사용자끼리의 연결 (ex. 메신저, 파일 공유)
· 그리드 컴퓨팅 : 필요한 컴퓨팅 자원을 구매해 사용하는 환경 (보통 연구용, 상업용)
· 클라우드 컴퓨팅 : 언제 어디서든 프로그램과 데이터를 사용할 수 있게 하는 환경
· IoT : 사물인터넷 / 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술
■ 운영체제의 구조
· 커널 : 운영체제의 핵심적인 기능을 모아둔 것 / 성능과 밀접한 관련
· 인터페이스 : 커널에 명령을 전달하고 실행 결과를 유저에게 알려주는 것
· 시스템 호출 : 커널을 보호하기 위한 인터페이스 / 직접 접근을 막아 자원을 보호한다.
· 드라이버 : 하드웨어 인터페이스를 담당 / HW 제작자가 만든 SW
→ System Call과 Driver는 커널 내부에 위치
■ 커널의 구성
· 역할 : 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리, 프로세스 간의 통신 관리
· 단일 구조 : 초창기 버전 / 모듈이 일체형
→ 장점 : 모듈이 분리되지 않아 통신 비용이 저렴
→ 단점 : 버그, 오류 처리의 어려움, 작은 결함에 큰 타격, 다양한 환경에 적응 X
· 계층 구조 : 비슷한 기능의 모듈을 묶어 계층으로 구현 / 오늘날의 운영체제
→ 단일 구조를 보완해 쉬운 디버깅이 가능함
· 마이크로 구조 : 운영체제는 가장 기본적인 것만 제공하고 모듈들이 세분화되어 존재
→ 장점 : 각 모듈이 독립적, 높은 이식성
■ 가상 머신
· 언어의 호환성을 메꾸기 위해서 만들어짐 (ex. java)
→ 호환성이 높아지나 가상 머신을 통해 응용프로그램이 작동하므로 느려지기도 한다.
'개인 공부 > OS (쉽게 배우는 운영체제)' 카테고리의 다른 글
쉽게 배우는 운영체제 : 가상 메모리 관리 (9장) (0) | 2021.10.29 |
---|---|
쉽게 배우는 운영체제 : 컴퓨터의 구조와 성능 향상 (2장) (0) | 2021.10.29 |
댓글