유사한 작업들끼리 일정량 또는 일정 시간 묶어서 처리하는 방식
컴퓨터 시스템을 효율적으로 사용할 수 있지만 하나의 작업이 모든 자원을 독점하므로 CPU 유휴 시간(직접 사용되는 시간)이 감소
하나의 CPU와 주기억 장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
CPU와 대화하면서 처리가 가능하여 CPU 사용률과 처리량이 증가
시간을 분할하여 여러 사용자들에게 컴퓨터 자원을 번갈아가며 할당하면 사용자는 자신이 컴퓨터를 독점하고 있다는 느낌을 갖게 됨
단말기의 요청을 즉시 처리하여 결과를 반환하는 시스템
여러 대의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
단일 운영체제에 의해 관리되며, 하나의 CPU가 고장나더라도 시스템의 신뢰성과 안정성을 보장
넷상으로 연결된 여러 대의 컴퓨터들의 처리 능력을 이용하여 복잡한 계산 문제를 해결하려는 분산 처리 모델
제일 먼저 CPU가 켜지고, CPU는 ROM(비휘발성 메모리)에 있는 BIOS 데이터를 읽어온다.
ROM은 Read-only memory이기 때문에 항상 같은초기 프로그램을 실행한다. 이 프로그램을 부트스트랩이라고 한다. CPU, register 등을 초기화시켜 컴퓨터가 정상적으로 새로운 연산 하도록 한다.
BIOS는 하드웨어의 정상 작동 검사를 한다.
POST에 이상이 없으면 BIOS는 부트스트랩을 실행하여 부팅 정보(부트로더)를 메모리로 읽어온다.
부트로더는 디스크에 있는 운영체제(OS) 코드를 메모리로 읽어온다. 즉, 앞에서 읽어온 부팅 정보는 부트로더(Bootloader)이다.
운영체제는 메모리에 상주하지 않지만 커널은 메모리에 상주한다.
부트로더는 MBR(Master Boot Record)에서 OS 실행 코드를 읽어오는데, MBR은 디스크가 분리되는 가장 바깥 지점에 있다.
읽어 온 운영체제 명령에 의해 CPU는 첫 프로세스(Daemon)를 즉시 실행한다. 이후, 인터럽트가 발생하면 각종 작업을 처리한다.
프로세스 관리, 메모리 관리, 저장장치 관리 등 운영체제의 핵심 기능을 수행하기 때문에 운영체제의 성능을 좌우함
사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할
커널이 자신을 보호하기 위해 만든 인터페이스
커널과 하드웨어의 인터페이스 담당
자원 관리 (Resource Management)
메모리 관리 (Memory Management)
장치 관리 (Device Management)
+
프로세스 관리 : 프로세스에 CPU를 배분하고 작업에 필요한 제반 환경 제공
메모리 관리 : 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간 제공
파일 시스템 관리 : 데이터를 저장하고 접근할 수 있는 인터페이스 제공
입출력 관리 : 필요한 입력과 출력 서비스 제공
프로세스 간 통신 관리 : 공동 작업을 위한 각 프로세스 간 통신 환경 지원
단일형 구조 : 초창기 운영체제 구조로, 커널 핵심 기능 모듈의 구분 없이 하나로 구성되어 있다.
모듈 간 통신 비용이 줄어들지만 버그나 오류 처리가 어렵고, 작은 결함이 시스템 전체로 확산될 가능성이 있다.
계층형 구조 : 비슷한 기능의 모듈을 묶어 계층화하고, 계층 간의 통신을 통해 운영체제를 구현한다.
단일형에 비해 버그나 오류 처리가 쉽지만 하나의 계층에 오류가 발생하면 다른 계층도 동작하지 않을 수 있다. 또한 운영체제의 규모가 커지면 커널의 크기가 커져 하드웨어의 용량이 늘어난다.
마이크로 구조 : 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 기본 기능만 제공하고 나머지 기능은 사용자 영역에 구현되어 있다.
각 모듈이 독립적으로 동작하기 때문에 하나의 모듈 에러가 운영체제 전체에 영향을 주지 않고, 커널이 가벼워 CPU 용량이 적다. 그러나 모듈의 독립성으로 인해 모듈 간 통신에 의해 성능이 저하될 수 있다.
하이브리드 구조 : 단일형 구조와 마이크로 구조 개념을 합친 것으로, 본질적으로 마이크로 구조와 같지만 사용자 레벨에서 수행될 때 느린 코드들을 커널 레벨에서 수행하도록 수정한 구조를 말한다.
사용자 측면과 시스템 측면으로 나눌 수 있습니다.
사용자 측면에는 사용자 인터페이스와 보안/보호 서비스가 있습니다.
시스템 측면에는 프로그램 수행, 입출력 연산, 파일 시스템 조작, 통신, 오류 탐지 등이 있습니다.
마이크로 구조 커널은 필수 기능에 대한 모듈만 제공하고 나머지 기능은 사용자 영역에 구현한 커널 구조입니다.
각 모듈이 독립적으로 동작하기 때문에 하나의 모듈 에러가 시스템 전체에 영향을 미치지 않고, 커널이 가벼워 CPU 용량이 적어지는 장점이 존재하지만 모듈의 독립성으로 인해 모듈 간 통신이 증가하면 성능이 저하된다는 단점이 있습니다.