운영체제
-
[OS] CPU 스케줄링 알고리즘의 종류운영체제 2023. 3. 26. 12:36
CPU 스케줄링 알고리즘은 매우 다양해서 운영체제 저마다 서로 다른 스케줄링 알고리즘을 사용하고 있어요. 오늘은 각 스케줄링 알고리즘을 통해 프로세스들을 스케줄링 하는 실질적인 방법을 알아봅시당.🧐 스케줄링 알고리즘의 종류 🧶 선입 선처리 스케줄링 FCFS(First Come First Served) 스케줄링이라고도 부름 단순히 준비 큐에 삽입된 순서대로 처리하는 비선점형 스케줄링 방식 때때로 비효율적인 호위효과가 발생함 🙋🏻♀️ 호위효과가 뭐죠? 예를 들어, 17ms 동안 CPU를 이용하는 프로세스 A, 5ms 동안 CPU를 이용하는 프로세스 B, 2ms 동안 CPU를 이용하는 프로세스 C가 순서대로 있다면 C는 고작 2ms를 실행하기 위해 22ms(17ms+5ms)라는 긴 시간을 기다려야만 하는데,..
-
[OS] CPU 스케줄링이란? | 선점형 스케줄링과 비선점형 스케줄링운영체제 2023. 3. 25. 09:40
운영체제가 프로세스들에게 CPU 자원을 배분하는 것을 CPU 스케줄링이라고 합니다. CPU 스케줄링은 컴퓨터 성능과도 직결되는 중요한 문제입니다. 프로세스 우선순위 우선순위가 높은 프로세스란 빨리 처리해야 하는 프로세스를 의미합니다. 대표적으로 비디오 재생이나 디스크 백업 작업 등 입출력 작업이 많은 프로세스가 있습니다. 이를 입출력 집중 프로세스라고 합니다. 그리고 복잡한 수학 연산, 컴파일, 그래픽 처리 작업 등 CPU 작업이 많은 프로세스를 CPU 집중 프로세스라고 합니다. 스케줄링 큐 운영체제는 프로세스들에 줄을 서서 기다리도록 요구합니다. CPU를 사용할 프로세스들과, 메모리에 적재될 프로세스들, 특정 입출력장치를 사용할 프로세스들을 모두 줄 세웁니다. 그리고 운영체제는 이 줄을 스케줄링 큐(s..
-
[OS] 스레드와 멀티프로세스, 멀티스레드운영체제 2023. 3. 19. 13:10
오늘은 스레드에 대해서 공부해 볼 겁니당🤨. 스레드는 프로세스를 구성하는 실행의 흐름 단위인데, 정확한 의미와 멀티스레드와 멀티프로세스의 차이도 알아봅시당 🧐스레드란?프로세스를 구성하는 실행의 흐름 단위하나의 프로세스는 여러 개의 스레드를 가질 수 있음스레드를 이용하면 하나의 프로세스에서 여러 부문을 동시에 실행할 수 있음 프로세스와 스레드🧲 단일 스레드 프로세스프로세스가 하나의 실행 흐름을 가지고 한 번에 하나의 부분만 실행되는 프로세스 🧲 멀티스레드 프로세스스레드라는 개념이 도입된 후, 하나의 프로세스가 여러 일을 동시에 처리하게 된 프로세스 🧲 스레드의 구성스레드 ID프로그램 카운터 및 레지스터 값스택 프로세스의 스레드들은 실행에 필요한 최소한의 정보(프로그램 카운터를 포함한 레지스터, 스택)만을 ..
-
[OS] 프로세스 상태와 계층 구조운영체제 2023. 3. 18. 13:41
프로세스는 모두 저마다의 상태가 있습니다. 운영체제는 이런 프로세스의 상태를 PCB에 기록하여 관리합니다. 그리고 대부분의 운영체제는 이처럼 동시에 실행되는 수많은 프로세스를 계층적으로 관리합니다. 프로세스의 상태 프로세스가 가질 수 있는 대표적인 상태는 아래와 같습니다. 🍊 생성 상태 new 프로세스를 생성중인 상태 이제 막 메모리에 적재되어 PCB를 할당받은 상태 🍊 준비 상태 ready CPU의 할당을 기다리는 상태 생성 상태를 거쳐 실행할 준비가 완료된 프로세스는 곧바로 실행되지 않고 준비 상태가 됨 준비 상태인 프로세스가 실행 상태로 전환되는 것을 디스패치(dispatch)라고 함 🍊 실행 상태 running CPU를 할당받아 실행 중인 상태 할당된 시간 동안 CPU 사용이 끝나면 (타이머 인터..
-
[OS] 프로세스의 메모리 영역, 정적 할당 영역과 동적 할당 영역운영체제 2023. 3. 12. 13:49
오늘은 프로세스의 메모리 영역에 대해서 배워볼 겁니당.🤨 프로세스는 현재 실행 중인 프로그램을 뜻했죠. 프로세스가 생성되면 커널 영역에는 해당 프로세스의 PCB가 생성됩니다. 그렇다면 사용자 영역에는 프로세스가 어떻게 배치될까요? 하나의 프로세스는 사용자 영역에 크게 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장됩니다. 이 내용은 프로그래밍에 있어서도 매우 중요한 내용입니다. 프로세스가 배치되는 영역들 ⛱️ 코드 영역 코드 영역(code segment)은 텍스트 영역(text segment)이라고도 부릅니다. 코드 영역에는 데이터가 아닌 CPU가 실행할 명령어가 담겨 있기 때문에 쓰기(write)가 금지되어 있습니다. 다시 말해 코드 영역은 읽기 전용(read-only) 공간입니다. ⛱..
-
[OS] 프로세스와 프로세스 제어 블록(PCB), 문맥 교환운영체제 2023. 3. 11. 23:30
오늘은 운영체제에서도 핵심 내용인 프로세스에 대해서 공부할 겁니당. 🧐 프로세스란? 프로세스(process)란 실행 중인 프로그램을 말합니다. 프로그램은 실행되기 전까지는 그저 보조기억장치에 있는 데이터 덩어리일 뿐이지만, 보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간부터 프로세스가 됩니다. 프로세스 확인하기 $ ps -ef 터미널에 위 명령어를 입력하면 현재 프로세스를 직접 확인할 수 있습니다. 📍프로세스의 종류 포그라운드 프로세스 : 사용자가 볼 수 있는 공간에서 실행되는 프로세스 백그라운드 프로세스 : 보이지 않는 공간에서 실행되는 프로세스 백그라운드 프로세스 중에서도 사용자와 상호작용하지 않고 정해진 일만 수행하는 백그라운드 프로세스를 데몬 혹은 서비스라고 부릅니다. 데몬(dae..
-
[OS] 커널, 이중 모드와 시스템 호출, 운영체제 서비스운영체제 2023. 3. 9. 10:02
https://www.kernel.org/ The Linux Kernel Archives www.kernel.org 커널이란 무엇일까 운영체제의 핵심 서비스를 담당하는 부분을 커널kernel이라고 합니다. 여기서 운영체제의 핵심 서비스란, 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능 등을 말합니다. 이중 모드와 시스템 호출 📌 이중 모드 이중 모드(Dual mode)란? • 컴퓨터 시스템의 하드웨어 자원과 프로세스를 보호하기 위한 모드 운영체제는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호합니다. 만약 응용 프로그램이 CPU, 메모리, 하드 디스크 등에 마음대로 접근하고 조작할 수 있다면 자원이 무질서하게 관리될 것이고, 응용 프로그램이 조..
-
[OS] 운영체제란?운영체제 2023. 2. 26. 17:41
운영체제란 무엇일까 모든 프로그램은 하드웨어를 필요로 합니다. 프로그램을 실행시킬 때 필요한 요소들을 보고 시스템 자원, 또는 자원이라고 합니다. 모든 프로그램은 실행되기 위해 반드시 자원이 필요한데, 여기서 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램을 운영체제(Operating System: OS)라고 합니다. 커널 영역과 사용자 영역 모든 프로그램은 실행되기 위해서는 메모리에 적재되어야 합니다. 그리고 운영체제도 사실 프로그램의 일종입니다. 그래서 운영체제 또한 다른 프로그램들처럼 메모리에 적재되어야 합니다. 다른 응용 프로그램이 적재되는 공간과 구분하기 위해 운영체제는 커널 영역(Kernel Space)라는 공간에 따로 적재됩니다. 그리고 커널 영역..