운영체제5 멀티 프로세스와 멀티 스레드 멀티 프로세스와 멀티 스레드는 한 어플리케이션에 대한 처리 방식이다. 각각이 어떤 것이고, 장단점이 무엇인지 알아보자. 멀티 프로세스 ❓ 멀티 프로세스, Multi Process 하나의 프로그램을 여러 개의 프로세스로 구성하여, 각 프로세스가 독립적으로 작업을 수행하는 것을 말한다. 보통은 하나의 프로그램 실행에 대해 하나의 프로세스가 메모리에 생성되지만, 부가적인 기능을 위해 여러 개의 프로세스를 생성하는 것이다. 내부 구조 멀티 프로세스의 내부를 보면, 하나의 부모 프로세스가 여러 개의 자식 프로세스를 생성함으로써 다중 프로세스를 구성하는 구조이다. 한 프로세스는 실행되는 도중 프로세스 생성 시스템 콜을 통해 새로운 프로세스들을 생성할 수 있는데, 다른 프로세스를 생성하는 프로세스를 부모 프로세스(P.. 2024. 4. 15. CPU Scheduling, 스케줄링 CPU Scheduling 운영체제가 수행하는 스케줄링 중에서 CPU 스케줄링이 우리에게 익숙한 스케줄링이다. 우리가 사용하는 컴퓨터는 여러 개의 프로그램이 돌아갈 수 있고, 이에 따라 동시성, 병렬성이라는 특성을 가지고 여러 프로세스를 한꺼번에 돌리는 것이 CPU의 역할이다. 이때 CPU는 스케줄링을 통해 다음에 돌아갈 프로세스를 선택한다. ❓ CPU Scheduling CPU 스케줄링이란, 운영체제에서 CPU를 사용할 수 있는 프로세스를 선택하고, CPU를 할당하는 작업 이다. 프로세스의 우선 순위, 작업량 등을 고려하여 효율적으로 선택한다. Preemptive VS Non-preemptive 우선 스케줄링의 방식은 선점방식과 비선점 방식으로 나뉜다. Preemptive, 선점 Preemptive(선.. 2024. 4. 15. 인터럽트(Interrupt)와 시스템 콜(System Call) 운영체제의 동작 과정 프로세스는 항상 돌아가지는 않는다. 싱글 코어 CPU에서는 한 번에 하나의 프로세스만 동작하는데, 이 과정에서 I/O가 발생하거나 프로그램에 문제가 생기면 프로세스는 잠시 동작을 멈춰야 할 것이다. 그런데 이런 것들을 누가 처리할까? 이 질문에 대해 대답하기 위해서는 인터럽트와 시스템 콜에 대해 알아야 한다. Dual Mode 현대 운영체제의 대부분은 Dual Mode로 작동한다. 이는 운영체제가 서로 다른 두 개의 모드로 돌아가는 것을 의미한다. 사용자 모드(User Mode) 일반적인 응용 프로그램이 구동되는 환경이다. 사용자, 프로그램이 접근할 수 있는 범위를 두고 범위 내에서 동작한다. 커널 모드(Kernel Mode) 커널이 구동되는 환경이며, 이 모드에서는 OS 시스템에 .. 2024. 4. 15. Process, 프로세스 프로세스 프로세스는 무엇을까? 이걸 알기 전에 우선 프로그램의 개념부터 정리할 필요가 있다. ❓ 프로그램 프로그램이란 어떤 작업을 위해 실행할 수 있는 파일이다. ❓ 프로세스 프로세스란 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적 개체)를 말한다. 즉, 프로그램을 실행 시켜 정적인 프로그램이 동적으로 변하여 돌아가는 상태를 프로세스라고 말한다. 프로그램과 프로세스의 차이를 정리하면 다음과 같다. 프로그램 프로세스 어떤 작업을 하기 위해 실행할 수 있는 파일 실행되어 작업 중인 컴퓨터 프로그램 파일 저장 장치에 있지만 메모리에는 올라가 있지 않은 정적인 상태 메모리에 적재되고 CPU 자원을 할당받아 프로그램이 실행되고 있는 상태 쉽게 말해 그냥 코드 덩어리 코드 덩어리를 실행한 것 프로세스의 .. 2024. 3. 28. 이전 1 2 다음