-
운영체제의 개요
운영체제는 응용 프로그램, 사용자에게 컴퓨터 자원을 사용할 수 있는 인터페이스를 제공하고,
그 결과를 돌려주는 시스템 소프트웨어 이다.
이 과정에서 사용자가 직접 컴퓨터 자원에 접근하는 것을 막아 자원을 보호한다.
초기 컴퓨터는 논리적으로 순차 처리하는 일괄 작업 시스템으로 시작했지만,
이후에 주변기기들이 생겨나면서 입력값에 따라 작업의 흐름이 바뀌는 대화형 시스템을 넘어
여러 작업을 시분할 하여 동시에 처리하는 것 처럼 하는 시분할 시스템까지 발전하게 되었다.
(운영체제는 프로세스를 관리하고, 실제 작업의 처리단위는 스레드로 CPU가 시분할로 처리한다)
인터넷이 보급됨에 따라 분산 시스템이 생겨났고, 이는 곧 서버-클라이언트 시스템으로 발전했다.
서버의 부담을 줄이고자 p2p(peer), o2o(object), 이 둘이 융합된 그리드 컴퓨팅, 클라우드 컴퓨팅 등이 뜨고있다.
최근에는 데이터의 양이 방대해지고, 센서도 발전함에 따라 사물 인터넷 시대가 도래했다.
Kernel
프로세스, 메모리, 저장장치 관리 등 운영체제의 핵심적인 기능을 모아놓은 프로그램이다.
하드웨어로부터 받는 드라이버를 통해 하드웨어의 자원을 관리하고,
시스템 호출 인터페이스, Interrupt를 통해 응용 프로그램, 사용자와 상호작용 한다.
커널이 하는 핵심 기능은 다음과 같다.
- 프로세스 관리
프로세스에 CPU를 배분하고 작업에 필요한 환경 제공 - 메모리 관리
프로세스에 작업 공간을 배치하고 실제 메모리 공간보다 큰 가상 메모리 공간을 제공 - 파일 시스템 관리
데이터를 저장/접근할 수 있는 인터페이스 제공 - 입출력 관리
- 프로세스간 통신 관리
초창기와 비교하면 커널은 구조가 상당히 변화해왔다.
- 단일형 구조 커널
위에서 설명한 핵심 기능이 모듈로 구분 없이 하나로 구성된 커널.
모듈간 통신 비용이 없기에 효율적인 운영이 가능한 장점이 있지만,
버그, 오류를 해결하기 어렵고, 기능간의 상호 의존성이 높기 때문에 작은 결함에도 취약해진다.
또한, 다양한 환경의 시스템에 적용하기 어렵다는 단점이 있다.
- 계층형 구조 커널
비슷한 기능을 가진 모듈을 묶어 하나의 계층으로 만들고 계층간 통신 이용하는 커널.
- 마이크로 구조 커널
프로세스, 메모리, 프로세스간 통신 관리 등 가장 기본적인 기능만 제공하고,
커널의 각 모듈은 세분화되어 모듈 간 정보 교환은 프로세스간 통신을 이용하는 커널.
'대학 > 운영체제' 카테고리의 다른 글
교착 상태 (Deadlock) (0) 2023.06.04 프로세스 동기화 (0) 2023.06.04 CPU 스케줄링 (0) 2023.04.16 프로세스와 스레드 (0) 2023.04.16 컴퓨터의 구조와 성능 향상 (0) 2023.04.16 - 프로세스 관리