하드웨어/소프트웨어 자원을 효율적으로 관리해주는 시스템 소프트웨어사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 인터페이스운영체제에서 작동하는 응용 프로그램을 관리하는 기능프로세서(CPU)를 관리하는 것이라고 볼 수도 있음현재 CPU를 점유해야 할 프로세스 결정, 프로세스
프로세스: 메모리 상에서 실행중인 작업(프로그램), CPU 스케줄링의 대상이 되는 작업스레드: 프로세스 내 작업의 흐름프로그램이 메모리에 올라가면 프로세스가 됨 (인스턴스화)기본적으로 프로세스마다 최소 1개의 스레드 소유 (메인 스레드 포함)프로세스는 각각 별도의 주소
여러 개의 프로세스를 통해 두 가지 이상의 작업을 병렬적으로 수행하는 것장점안전성 (메모리 침범 문제를 OS 차원에서 해결 - 특정 프로세스의 메모리, 프로세스 중 일부에 문제가 발생하더라도 다른 프로세스 이용해 처리 가능)단점각각 독립된 메모리 영역을 갖고 있어 작업
프로세스끼리 데이터를 주고받고 공유 데이터를 관리하는 메커니즘프로세스끼리는 커널이 제공하는 IPC 설비를 이용해 통신 가능메모리가 완전히 공유되는 스레드보다는 속도 떨어짐e.g. 클라이언트와 서버익명 파이프 unnamed pipe프로세스 간에 FIFO 방식으로 읽히는
CPU 스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당한다. 프로그램 실행 시 CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 지 결정한다. CPU 스케줄링 알고리즘의 목표는 다음과 같다.CPU 이용률
두 개 이상의 프로세스들의 서로가 가진 공유 자원을 기다리며 중단된 상태한 프로세스가 자원을 독점하고 있으며 다른 프로세스들은 접근 불가특정 프로세스가 점유한 자원을 다른 프로세스가 요청하는 상태다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없음프
시스템 안에서 각 프로세스/스레드가 함께 접근할 수 있는 모니터, 프린터, 메모리, 파일, 데이터 등의 자원이나 변수Race condition - 공유 자원을 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황여러 프로세스가 자원을 공유할 때 각 프로세스에서 공유 자원을
디스크에 존재하는 프로그램은 메모리에 올라오고 CPU를 할당받음으로써 실행됨단편화 - 여러 프로세스들이 메모리에 올라가고 내려가면서 메모리에 빈 공간이 생기고 자료가 여러 조각으로 나뉘는 것 → 이런 현상이 많이 발생하면 실질적으로 사용할 수 없는 메모리 발생프로세스에
다중 프로그래밍 시스템에 여러 프로세스를 수용하기 위해 주기억장치를 동적 분할하는 메모리 할당 필요메모리에 프로그램 할당시 시작 메모리 위치와 메모리의 할당 크기 기반으로 할당연속 할당/불연속 할당으로 나뉨메모리에 프로그램 전체를 연속적으로 공간 할당고정 분할 방식/가
주기억장치에 저장된 내용의 일부를 임시로 저장해두는 기억장치빠른 장치(CPU)와 느린 장치(주기억장치)에서 속도 차이에 따른 병목 현상 줄이기 위한 메모리e.g. - 메모리와 CPU 사이의 속도 차이가 너무 커서 그 중간에 레지스터 계층을 둬서 속도 차이 해결 캐싱 계