CPU 스케줄링
·
CS 지식/[운영체제]
1. 스케줄링 조건 : 오버헤드 ↓ / 사용률 ↑ / 기아 현상 ↓ 목표 Batch System: 가능하면 많은 일을 수행. 시간(time) 보단 처리량(throughout)이 중요 Interactive System: 빠른 응답 시간. 적은 대기 시간. Real-time System: 기한(deadline) 맞추기. 2. 선점 / 비선점 스케줄링 선점 (preemptive) : OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우 (처리시간 예측 어려움) 비선점 (nonpreemptive) : 프로세스 종료 or I/O 등의 이벤트가 있을 때까지 실행 보장 (처리시간 예측 용이함) 3. 프로세스 상태 선점 스케줄링 : Interrupt, I/O or Event Completion, I/O ..
데드락 (DeadLock, 교착 상태)
·
CS 지식/[운영체제]
두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태를 말함 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 데드락이 일어나는 경우 프로세스1과 2가 자원1, 2를 모두 얻어야 한다고 가정해보자 t1 : 프로세스1이 자원1을 얻음 / 프로세스2가 자원2를 얻음 t2 : 프로세스1은 자원2를 기다림 / 프로세스2는 자원1을 기다림 ⇒ 현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠짐 → 이것이 바로 DeadLock 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생 한 프로세스가 자원을 요청했을 때, 동시에 그 자원을 사용할 수 없는 상황이 발생할 수 ..
프로세스 & 스레드
·
CS 지식/[운영체제]
프로세스 프로그램을 메모리 상에서 실행 중인 작업 ⇒ 작업 중인 프로그램 스레드 프로세스 안에서 실행되는 여러 흐름 단위 기본적으로 프로세스마다 최소 1개의 스레드 소유(메인 스레드 포함) 프로세스는 각각 별도의 주소 공간 할당 (독립적) Code : 코드 자체를 구성하는 메모리 영역(프로그램 명령) Data : 전역 변수, 정적 변수, 배열 등 초기화 된 데이터는 data 영역에 저장 초기화 되지 않은 데이터는 bss 영역에 저장 .data : 전역 변수 또는 static 변수 등 프로그램이 사용하는 데이터를 저장 .BSS : 초기값 없는 전역 변수, static 변수가 저장 .rodata : const같은 상수 키워드 선언 된 변수나 문자열 상수가 저장 Heap : 동적 할당 시 사용 (new(), ..
운영체제(OS, Operating System)
·
CS 지식/[운영체제]
운영 체제사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어종료 : Windows, Linux, UNIX, MS-DOS 등운영체제의 목적사용자와 하드웨어 사이의 인터페이스를 제공해 효율적으로 응용프로그램이 동작하도록 지원시스템 자원을 효율적으로 관리하여 응용프로그램이 원활하게 동작할 수 있도록 함운영체제의 코어(핵심) 부분을 커널(Kernel)이라고 하는데, 일반적으로는 커널에 여러가지 기능(라이브러리, 시스템 프로그램 등)이 추가된 상태를 통칭해서 운영체제라고 함컴퓨터 시스템 간략 구조도운영체제의 역할1. 프로세스 관리프로세스, 스레드 / 스케줄링 / 동기화 / IPC 통신2. 저장장치 관리메모리 관리 / 가상 메모리 / 파일 시스템3. 네트워킹TCP/IP / 기타..