본문 바로가기

Computer Science32

CPU 스케줄링 목차 CPU 스케줄링 CPU 스케줄링은 운영 체제가 여러 프로세스 또는 스레드가 CPU를 공유하여 사용할 수 있도록 관리하는 메커니즘입니다. CPU 스케줄링의 목적은 CPU 사용률을 최대화하고, 시스템 또는 사용자의 요구 사항에 맞춰 작업 처리 시간을 최적화하는 것입니다. CPU bound process , I/O bound process 일반적으로 프로세스는 CPU 작업과 I/O 작업을 반복하며 실행됩니다. CPU 버스트(burst) : CPU를 이용하는 작업 I/O 버스트(burst) : I/O를 기다리는 작업 각 프로그램마다 CPU 버스트와 I/O 버스트가 차지하는 비율이 균일하지 않습니다. 그중 한 부분의 비율이 유독 높은 프로세스를 CPU Bound process와 I/O bound proces.. 2024. 4. 3.
멀티프로세스와 멀티스레드 목차 멀티프로세스(multiprocess)와 멀티스레드(multithread) 멀티프로세스와 멀티스레드 방식으로 프로그래밍을 진행하게 되면 코어가 여러 개일 경우 병렬성을 가집니다. (컴퓨터 환경이 단일 코어일 경우에는 동시성만 가집니다.) 참고 : 병렬성, 동시성 개념 멀티프로세스 : 여러 프로세스를 동시에 실행하는 것 멀티스레드 : 여러 스레드로 하나의 프로세스를 동시에 실행하는 것 프로세스끼리는 기본적으로 자원을 공유하지 않지만, 스레드끼리는 같은 프로세스 내의 자원을 공유합니다. 멀티프로세스 멀티프로세스 프로세스를 fork하여 같은 작업을 하는 동일한 프로세스 두 개를 동시에 실행하면 코드 영역, 데이터 영역, 힙 영역 등을 비롯한 모든 자원이 복제되어 메모리에 적재됩니다. 한 마디로 PID, 저.. 2024. 4. 2.
프로세스와 스레드 목차 프로세스 메모리 영역(사용자 영역) 프로세스는 실행중인 프로그램을 의미합니다. (메모리에 올라와 있는 프로그램) 하나의 프로세스는 메모리의 사용자 영역에 크게 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장됩니다. 코드 영역과 데이터 영역은 정적 할당 영역(크기가 고정된 영역) 힙 영역과 스택 영역은 동적 할당 영역(프로세스 실행 과정에서 그 크기가 변할 수 있는 영역) 코드 영역 코드 영역(code segment)은 텍스트 영역(text segment)이라고도 부릅니다. 이곳에는 말 그대로 실행할 수 있는 코드, 즉 기계어로 이루어진 명령어가 저장됩니다. 코드 영역에는 데이터가 아닌 CPU가 실행할 명령어가 담겨 있기 때문에 쓰기가 금지되어 있습니다. 즉, 코드 영역은 읽기 전용(.. 2024. 3. 29.
운영체제(OS, Operation System)란? 목차 운영체제란? 운영체제는 사용자 및 다른 모든 소프트웨어 와 하드웨어를 연결하는 소프트웨어 계층입니다. 운영체제가 없다면 사용자 및 소프트웨어와 하드웨어를 연결해 줄 수 없어 컴퓨터는 그저 고철덩어리가 됩니다. 운영체제도 소프트웨어기 때문에 메모리에 올라가있어야 합니다. 규모가 큰 프로그램이므로 항상 필요한 부분만 메모리에 올라갑니다.(좁은 의미의 운영체제) 운영체제라고 말하면 일반적으로 이 영역을 말합니다. 이 메모리 영역을 커널이라고 합니다. 항상 필요하지 않은 부분은 필요할 때마다 메모리에 올려서 사용합니다.(넓은 의미의 운영체제) 운영체제는 컴퓨터 전원을 키면 바로 실행되어야 합니다. 이때 운영체제는 커널이라는 메모리 영역에 올라갑니다. 커널은 보통 높은 메모리 주소에 할당됩니다. 이중 모드(.. 2024. 3. 29.