도슐랭스타
OS - 운영체제 구조와 종류 본문
커널(Kernel)
- 운영체제의 핵심(Core)
- 프로세스 관리, 메모리 관리, 저장장치 관리 등 운영체제의 필수 기능을 함.
인터페이스(Interface)
- 커널 <- 인터페이스 -> 사용자
커널에 사용자의 명령 전달하고 실행 결과를 사용자에게 전달. - GUL (Graphical User Interface): 그래픽 기반
- CLI(Command Line Interface) : 텍스트 기반
시스템 호출(System Call)
- '커널'이 제공하는 시스템 자원의 사용과 연관된 함수.
- 커널이 제공하는 인터페이스
- 응용프로그램이 커널 영역에 진입할 수 있는 '유일한 수단'.(다른 방법으로 커널에 들어오지 못함.)
- 사용자 인터페이스 또는 응용프로그램이커널에게 접근하기 위한 수단
- 컴퓨터자원의 효율적인 보호
ex. 커피 머신을 모두가 이용하면 기계의 수명(자원)이 줄어듦. - 표준화된 접근
ex. 커피 주문만 하면 됨.(커피를 직접 내리지 않아도 됨.)
직접 접근
- 여러 응용 프로그램이 각자 지정한 위치에 데이터를 저장하려고 함
- 다른 응용 프로그램의 데이터가 변형되거나 의도치 않게 지워질 수도 있음
시스템 호출을 통한 접근
- '커널에게' 데이터를 저장해달라고 요청 해야함.
- 데이터의 가져오거나 저장하는 것을 커널이 관리하기 때문에 컴퓨터 자원 관리가 수월함.
디바이스 드라이버(Device Driver)
- 커널과 하드웨어의 인터페이스 역할.
- 마우스 같이 간단한 제품은 커널이 기본 드라이버로 가지고 운영함.
- 그래픽카드와 같이 복잡하고 제품에 따라 기능이 서로 다른 특징을갖는경우제작사가 별도로 드라이버를 제공함.
커널의 구조
커널의 핵심 기능
- 프로세스 관리
- 프로세스(응용프로그램)에 CPU를 배분.
- 제반 환경을 제공
- 메모리 관리
- 작업 공간을 배치
- 가상의 공간을 제공
- 파일 시스템(NTFS) 관리
- 데이터 저장을 위한 인터페이스를 제공
- 입출력 관리
- 필요한 입력과 출력 서비스를 제공
- 프로세스 간 통신(IPC) 관리
- 공동 작업을 위한 각 프로세스간 통신 환경을 제공
- 네트워크 관리
특성
- 운영체제가 점점 더 다양한 하드웨어와 소프트웨어를 지원 -> 커널 구조도 점점 '복잡'해 지고 있음.
단일형 구조 커널(Monolithic Architecture)
- 초창기의 운영체제 구조
- 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성.
- 장점
- 모듈 간의 통신 비용이 줄어들어 효율적인 운영이 가능함.
- 단점
- 복잡한 구조로 인해 버그나 오류 수정이 어려움.(하나로 통째로 있음.)
- 운영체제의 여러 기능이 '상호 의존성'이 있으므로 기 능상의 '작은 결함이 시스템 전반'에 미침.
- 다양한 환경의 시스템에 적용하기 어려움 -> 호환성 부족(Incompatibility)
- 현대의 운영체제 : 매우 크고 복잡하기 때문에 완전 단일형 구조의 운영체제를 구현하기가 어려움
계층형 구조 커널
- 유사 기능을 가진 모듈을 하나의 계층으로 구현
- 계층 간의 통신을 통해 운영체제 서비스를 지원
마이크로 구조 커널
- 가장 기본적인 기능만 제공
ex. 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 - 커널의 각 모듈을 세분화
- 모듈 간의 정보 교환은 마치 프로세스 간 통신처럼 이루어짐.(각자 연결)
가상 머신(Virtual Machine)
- 가상 머신을 사용하면 응용 프로그램이 모두 동일한 환경에서 작동하는 것처럼 보임.
- 구조 : 운영체제 - 가상머신 - 응용프로그램
운영체제와 응용 프로그램 사이에서 작동하는 중간 프로그램임. (미들웨어: Middleware)
운영체제의 종류
유닉스의 개발과 확산
- 1969년 AT&T의 연구원으로서 멀틱스(Multics) 프로젝트의 결과물
- C언어를 사용했기에 인기가 많았음.
리눅스(Linux)의 개발
- 1991년에 리누스 톨바즈(Finland, University of Helsinki)에 의해 커널 개발
- 현재 GPL(GNU Public License)로 배포되어 있음.
애플의 등장
- 1976년 스티브 잡스는 애플(Apple Inc.)를 창업
- 1977년 애플 II라는 개인용 컴퓨터를 대중화 함
- macOS : 1980년대 UNIX를 기반으로 개발한 운영체제
- 전략
- 기술을 발전시키는 것보다 사용자에게 편리함을 제공
- GUI와 같은 사용자 편의를 위한 인터페이스 기술 개발에 집중
윈도우의 출시
- MS-DOS (Diskette Operating System)에 멀티태스킹 기능화 GUI 환경을 적용한 응용프로그램에서 시작
- 1995년 이후 응용프로그램에서 운영체제로 전환
안드로이드
- 리눅스 커널을 기본 운영체제로 하며 스마트폰 또는 임베디드 장치를 위해 사용자 인터페이스 및 기타 유틸리티를 제공
- GNU의 리눅스를 사용하여 제작되었기 때문에 GPL을 따름
- 누구나 공짜로 사용할 수 있음
- 새로운 버전과 동시에 소스코드도 공개하기 때문에 누구나 수정 및 재배포가능
반응형
'OS' 카테고리의 다른 글
OS - 병렬처리(Parallel Processing) (0) | 2024.05.23 |
---|---|
OS - 인터럽트(Interupt) (0) | 2024.05.16 |
OS - 성능향상기법 (1) | 2024.05.09 |
OS - 컴퓨터 시스템 구조 (0) | 2024.05.05 |