운영체제 구조에서는 사용자영역과 커널 영역으로 나뉜다. 사용자 영역은 응용프로그램이, 커널영역은 커널이 있다.
단일구조
사용자 영역에 있는 여러 응용프로그램들은 시스템 호출 인터페이스를 이용해서 커널에게 작업을 요청한다. 커널에는 메모리 관리자, 프로세서 스케줄러, 파일 시스템 등 많은 기능들이 있다. 각 기능들은 바로 직접통신이 가능하다(커널 내 모듈간 직접 통신 가능). 이는 효율적으로 자원을 관리 및 사용할 수 있다는 장점이 있다. 단점으로는 커널이 거대해진다는 것이다. 오류 및 버그, 추가 기능 구현 등 유지 보수가 어렵다. 또한 한 모듈의 문제가 전체 시스템에 영향을 줄 수가 있다. 만약 악성코드가 침입하면 전체 시스템에 문제가 생길 수 있다.
계층구조
계층구조는 단일구조의 형태에서 기능별로 따로 떼어서 계층적으로 묶은 것이다. 이렇게 기능별로 따로 떼어놓은 것을 모듈화라고 한다. 계층간 검증 및 수정이 용의하며, 설계 및 구현이 단순하다는 장점이 있다. 단점으로는 단일구조 대비 성능이 저하된다는 점이 있다. 특정 기능을 수행하기 위해서는 여러 계층을 거쳐야 하기 때문이다.
마이크로 커널 구조
커널에는 필수 기능만 담고, 다른 것들은 응용프로그램(사용자영역)에서 응용프로그램처럼 실행하는 구조이다. 메모리 관리 및 프로세스관리, 프로세스 통신 같은 것들만 커널에서 한다. 그 외 파일 시스템, 프로세서 스케줄링, 장치관리자 등은 사용자 영역에서 한다.
커널
OS의 핵심 부분이며 항상 메모리에 올라가있다. 시스템 관리처럼 가장 빈번하게 사용하는 기능들을 담당한다
유틸리티
커널을 제외한 비상주 프로그램들을 말한다. 메모리에 항상 올라온 것은아니고 필요할 때 올리고 사용한다.
System calls
커널한테 무언가를 요청하는 통로와 같다.
프로세스 관리
프로세스는 커널에 등록된 실행 단위이다. 한마디로 실행중인 프로그램이다. 사용자 요청을 처리하고, 기능을 수행하는 수행의 주체라고도 할 수 있다.
OS의 프로세스 관리 기능
생성/삭제, 상태관리, 자원 할당, 프로세스 간 통신 및 동기화(synchronization), 프로세스 정보 관리, 교착상태(deadlock) 해결 등
교착상태란 여러개의 프로세스가 하나의 자원을 동시에 쓰려고 하는 상태다. 교착상태를 중지하는 역할도 운영체제가 한다.
중앙처리장치(CPU)
프로그램을 실행하는 핵심 자원이다.
프로세스 스케줄링
시스템 내의 프로세스 처리 순서를 결정한다.
프로세서 할당 관리
프로세스들에 대한 프로세서를 할당한다. 프로세서는 한 번에 하나의 프로세스만 사용 가능하다.
주기억장치(RAM)
작업을 위한 프로그램 및 데이터를 올려놓는 공간이다.
Multi-user, Multi-tasking 시스템
프로세스에 대한 메모리 할당 및 회수, 메모리 여유 공간 관리, 각 프로세스의 할당 메모리 영역 접근 보호
메모리 할당 방법(scheme)
전체 적재, 일부적재