[OS] 시스템 콜(System Call)
·
Computer Science/Operating System
운영체제는 왜 하드웨어 접근을 막을까?운영체제는 컴퓨터의 자원을 보호하기 위해 프로그램이 하드웨어(CPU, 메모리, 디스크 등)에 직접 접근하는 것을 막는다.만약 모든 프로그램이 아무런 제약 없이 하드웨어에 접근할 수 있다면 어떻게 될까?자원의 무질서한 관리: 여러 프로그램이 동시에 메모리의 같은 공간에 데이터를 쓰려고 하거나, 하드 디스크의 특정 파일을 마음대로 삭제할 수 있다.시스템 전체의 불안정성: 한 프로그램의 실수가 전체 컴퓨터 시스템에 치명적인 영향을 줄 수 있다. 예를 들어, 잘못된 메모리 접근으로 인해 운영체제 자체가 멈출 수 있다.이러한 문제를 방지하기 위해, 운영체제는 자신을 통해서만 하드웨어 자원에 접근하도록 통제한다.프로그램은 필요한 작업이 있을 때 운영체제에 도움을 요청하고, 운영..
[OS] 프로세스 VS 스레드 (Context Switching)
·
Computer Science/Operating System
컨텍스트 스위칭이란?운영체제에서 CPU는 동시에 여러 작업을 처리하는 것처럼 보이게 하기 위해, 아주 짧은 시간 단위로 작업을 바꿔가며 실행한다.이때 작업을 바꾸는 과정을 컨텍스트 스위칭(Context Switching) 이라고 부른다.작업 단위가 프로세스일 수도 있고작업 단위가 스레드일 수도 있다그럼 어떤 경우가 더 빠를까?바로 스레드 간의 컨텍스트 스위칭이 프로세스 간의 컨텍스트 스위칭보다 훨씬 빠르다.프로세스 vs 스레드, 뭐가 다를까?항목프로세스스레드정의실행 중인 프로그램프로세스 내 작업 흐름자원각각 독립된 메모리 주소 사용같은 프로세스 내 자원 공유컨텍스트 정보PCB (Process Control Block)TCB (Thread Control Block)핵심 차이점은 자원을 공유하는가, 아닌가이..
[OS] CPU 스케줄링 알고리즘
·
Computer Science/Operating System
운영체제에서 CPU는 한 번에 하나의 작업만 처리할 수 있기 때문에,동시에 여러 프로세스가 실행 준비 상태에 있다면 어떤 프로세스를 먼저 실행할지 결정하는 정책이 필요하다. 이때 어떤 기준으로 CPU를 할당할지는 CPU 스케줄링 알고리즘에 따라 달라진다.CPU 스케줄러란?CPU 스케줄러는 실행 준비 상태(Ready state)에 있는 여러 프로세스 중에서 CPU를 다음에 할당할 프로세스를 결정하는 운영체제의 핵심 컴포넌트다. 이 스케줄링 과정은 일반적으로 다음과 같은 시점에 발생한다:현재 실행 중인 프로세스가 종료될 때현재 프로세스가 I/O 작업 등으로 CPU를 반납할 때인터럽트 발생 등으로 CPU가 다른 작업을 처리해야 할 때우선순위가 더 높은 프로세스가 ready 상태로 진입했을 때 (선점형 스케줄러..
[OS] 커널(Kernel)이란?
·
Computer Science/Operating System
운영체제의 심장  0. 운영체제 부팅과정전원이 켜지면 BIOS(Basic Input/Output System)가 POST(Power-On Self Test)를 수행      → CPU, 메모리, 기타 하드웨어가 정상 작동하는지 점검BIOS는 부트로더(Bootloader)를 주기억장치(RAM)로 가져와 실행부트로더는 하드디스크/SSD에서 운영체제 커널을 찾아 메모리에 적재      → 커널이 메모리에 올라가면서 시스템 제어를 인계받음이후 사용자가 실행하는 일반 프로그램은 보조기억장치에 저장되며,      운영체제가 이를 메모리에 로딩해 프로세스로 실행함커널은 메모리에 올라온 프로세스를 CPU에 할당      → CPU가 명령어를 해석하고 실행하며, 운영체제가 여러 프로세스에 CPU 시간을 분배1. 커널(K..