프로그래밍/운영체제
운영체제 · 인터럽트, 트랩
인터럽트와 트랩의 차이점 ✓ 인터럽트 : 하드웨어적 흐름의 변화 / 프로그램 외부(I/O 장치, 디스크 등)에서 발생하며, 발생 시점이 일정하지 않기 때문에 비동기적이다.✓ 트랩 : 소프트웨어적 흐름의 변화 / 소프트웨어 인터럽트라고도 하며, 프로그램 내부에서 일어나는 에러이다. 발생 시점이 프로그램의 일정한 지점이기 때문에 동기적이다. 즉, 고정된 영역에서 일어난다. 인터럽트의 종류 ✓ 하드웨어 인터럽트 (Hardware Interrupt) 인터럽트는 외부 인터럽트와 내부 인터럽트로 구분하는데, 외부 인터럽트를 하드웨어 인터럽트라 한다. 그냥 인터럽트라 하면, 일반적으로 하드웨어 인터럽트를 의미한다. 내부 인터럽트는 소프트웨어 인터럽트와 같은 개념이라고 보면 된다.외부 인터럽트는 프로그램 외부에서 일어..
운영체제 · 프로세스 상태
프로세스 상태 (Process State) 프로세스는 실행의 흐름에 따라 상태(스테이트)가 변한다. 상태를 정의하는 이름은 운영체제에 따라 다르지만, 대부분 서로 비슷한 개념으로 구성되어 있다. 프로세스의 흐름은 일반적으로 5개의 상태로 정의된다. 프로세스의 5가지 상태 ✓ 생성 (New) : 프로세스 생성 상태✓ 실행 (Running) : 프로세스가 CPU에 할당되어 실행 중인 상태✓ 준비 (Ready) : 프로세스가 CPU에 할당되기를 기다리는 상태✓ 대기 (Waiting) : 보류(Block)라고도 하며, 프로세스가 입출력이나 이벤트를 기다리는 상태✓ 종료 (Terminated) : 프로세스 종료 상태 프로세스의 상태 전이 ✓ 승인 (Admitted) : 프로세스 생성이 가능하여 승인됨.✓ 스케줄러..
운영체제 · 프로세스 제어 블록
프로세스 제어 블록 (PCB, Process Control Block) ✓ 정의 : 프로세스에 관한 다양한 정보를 가지고 있는 커널의 자료 구조✓ 작업 제어 블록(Task Control Block)이라고도 하며, 운영체제가 프로세스를 표현한 형태이다.✓ 프로세스에 관한 중요한 정보를 포함하기 때문에, 사용자가 접근하지 못하도록 보호된 메모리 영역 안에 위치한다. 일부 운영체제에서는 커널 스택의 처음에 위치한다.✓ Linux 운영체제에서는 헤더 파일의 struct task_struct로 표현된다. /* PCB Example (task_struct) */ struct task_struct { volatile longstate; void*stack; atomic_tusage; intrecent_used_cpu..
운영체제 · 멀티 스레드, 멀티 스레딩
멀티 프로세스와 멀티 스레드의 차이점 ✓ 멀티 프로세스 : 독립적인 다수의 프로세스, 메모리 공간(코드, 데이터, 힙, 스택)을 공유하지 않음.✓ 멀티 스레드 : 하나의 프로세스 내에 존재하는 다수의 스레드, 메모리 공간(코드, 데이터, 힙)을 공유하지만, 스택 영역은 공유하지 않음. 멀티 스레딩 (Multi-threading) ✓ 정의 : 하나의 프로세스를 다수의 스레드로 구성하여 서로 자원을 공유하고, 이를 통해 자원을 효율적으로 사용하여 작업 처리 속도를 향상시키는 것✓ 각 스레드는 프로세스 내에 존재하며, 코드/데이터/힙 영역을 공유하면서 데이터를 주고받을 수 있다. 이러한 장점 때문에, 프로세스 간 통신(IPC)에 비해 통신 오버헤드가 적고 속도가 빠르다.✓ 멀티 스레딩을 통해 시스템의 처리량이..
운영체제 · 멀티 프로세싱, 멀티 프로그래밍, 멀티 태스킹
멀티 프로세싱, 멀티 프로그래밍, 멀티 태스킹의 차이점 ✓ 멀티 프로세싱 : 다수의 프로세서가 다수의 프로세스를 동시에 처리하는 것✓ 멀티 프로그래밍 : 다수의 프로세스를 메모리에 적재하여 프로세스를 번갈아가면서 처리하는 것✓ 멀티 태스킹 : 다수의 작업을 운영체제 스케줄링에 의해 번갈아가면서 처리하는 것 멀티 프로세싱 (Multi-processing) ✓ 정의 : 다수의 프로세서가 다수의 프로세스를 협력적으로 동시에 처리하는 것✓ 프로세서(Processor)는 CPU라고 생각하면 되며, 프로세스(Process)와 다른 개념이다.✓ 각 프로세서는 다수의 프로세스를 처리하며, 각 프로세스는 다수의 프로세서에 의해 처리된다.✓ 각 프로세서가 자원을 공유하면서 프로세스를 처리하기 때문에, 하나의 프로세서가 고..
운영체제 · 프로세스, 스레드
프로세스와 스레드의 차이점 ✓ 프로세스 : 운영체제로부터 자원을 할당받는 작업의 단위✓ 스레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위 프로세스 (Process) ✓ 정의 : 실행 중인 프로그램에 대한 인스턴스✓ 프로세스는 운영체제로부터 각각 독립된 자원(code, data, stack, heap, PC register 등)을 할당받는다.✓ 각 프로세스는 최소 1개 이상의 쓰레드를 가지고 있다.✓ 다른 프로세스의 자원에 접근하려면, 프로세스 간 통신(IPC)을 이용해야 한다. ✓ 프로세스와 프로그램의 차이프로그램 : Passive entity, 명령어 리스트를 지닌 실행 파일 클래스프로세스 : Active entity, 메모리에 적재되어 프로그램 카운터와 자원을 가진 인스턴스 스레드 (Thre..
운영체제 · 운영체제 개념
운영체제 (OS, Operating System) ✓ 정의 : 컴퓨터 시스템의 자원들을 효율적으로 관리하고, 사용자가 컴퓨터를 편리하게 사용할 수 있도록 환경을 제공하는 것✓ 종류 : Unix, Linux, MS-DOS, Windows, macOS 등 ✓ 운영체제의 역할하드웨어와 사용자 간의 인터페이스 제공 (CUI, GUI 등)프로세스 처리 및 스케줄링CPU, 입출력장치, 파일 등의 자원 관리하드웨어, 네트워크 제어 등 다양한 역할 수행 운영체제의 목적 ✓ 처리 능력(Throughput) 향상 : 처리 능력이란 일정 시간 내에 처리할 수 있는 작업량을 뜻하며, 시스템 전체의 생산성을 측정하는 단위이다.✓ 응답 시간(Turn Around Time) 단축 : 응답 시간이란 사용자가 처리를 요구한 시점부터 ..