본문 바로가기

운영체제

(9)
[OS] System Call (시스템 콜) 운영체제란컴퓨터의 시스템 자원을 효율적으로 관리하고, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임좁은 의미의 OS : 커널, 컴퓨터가 켜진 후 항상 메모리에 상주하는 운영 체제의 핵심 부분넓은 의미의 OS : 커널을 포함해서 메모리에 상주하지 않는 다양한 유틸리티를 모두 포괄하는 개념 시스템 콜응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스 역할사용자 모드에서 커널 모드로 전환하기 위한 호출사용자가 일반적으로 사용하는 응용 프로그램은 유저 레벨의 함수만으로는 기능을 구현하기 힘들기 때문에, 커널의 도움을 받아야 한다.운영체제는 하드웨어가 직접 관리, 응용 프로그램은 운영체제가 제공하는 인터페이스를 통해서만 자원을 사용할 수 있다.운영체제에 의해..
[OS] 인터럽트(Interrupt) 인터럽트란?프로그램 실행 도중, 예상치 못한 외부에서 발생한 이벤트로, OS / 하드웨어 장치(입출력장치) / 소프트웨어(예외, 시스템 호출등 )가 CPU의 정상적인 프로그램 실행을 방해했다는 의미CPU가 프로그램을 실행 중일 때 더 중요한 작업(입출력, 시스템 요청, 예외 등)이 발생하면, CPU에게 알려 현재 실행 중인 작업을 중단하고 발생된 상황에 대한 해당 요청을 우선 처리하는 매커니즘이다.CPU가 실행 중 인터럽트가 발생하면, 현재 작업을 저장하고(컨텍스트 스위칭) 인터럽트 핸들러(ISR, Interrupt Service Routine) 를 실행한 후 원래 작업을 재개한다.인터럽트(Interrupt) vs 예외(Exception)인터럽트 : 주로 외부 장치(키보드 입력, 타이머, 네트워크 등)에..
[OS] 메모리 관리 기법 ( Paging & Segmentation ) 운영체제는 크게 페이징(Paging)과 세그멘테이션(Segmentation)을 통하여 프로세스의 메모리 공간을 관리한다.Paging  페이징이란? 하나의 프로세스가 사용하는 메모리 공간이 연속적이여야 한다는 제약을 없앤 가상 메모리 관리 기법논리 메모리를 페이지라 불리는 **고정 크기 블록**으로 분리하여 페이지를 프레임(물리 메모리)에 할당페이지 크기가 먼저 결정되고 동일한 크기의 프레임 크기가 결정된다.논리 메모리는 물리 메모리에 저장될 때 연속되어 저장되지 않고, 물리 메모리의 남는 프레임에 적절히 배치된다.이때 물리 메모리의 어디에 저장되었는지에 대한 정보는 **page table**에 저장되어 페이지 번호와 프레임을 매핑시켜준다.페이지 테이블이란?가상 주소 공간을 실제 물리적 메모리 공간에 매핑..
[운영체제] Context Switching (문맥 교환) PCB : https://wishlee0204.tistory.com/305 Context Switching (문맥 교환) 이란?CPU가 실행 중인 프로세스를 변경할 때 발생하는 과정CPU가 이전의 프로세스 상태(레지스터 정보 - PC, SP 등)를 PCB에 저장하고새로운 프로세스의 PCB를 읽어 레지스터에 값을 복원하여CPU의 레지스터 정보가 변경되어 새로운 프로세스가 실행(프로세스 상태 변경)되는 과정을 Context Switching 이라고 한다.보통 인터럽트가 발생하거나, 실행 중인 CPU 사용 허가 시간을 모두 소모하거나, 입출력을 위해 대기해야 하는 경우에 Context Switching이 발생한다.즉 프로세스가 Ready → Running, Running → Ready, Running → Wa..
[운영체제] PCB (Process Control Block) 사용자가 실행한 프로그램은 어떻게 실행될까? 사용자가 프로그램을 실행하면, 운영체제(OS)의 커널이 프로그램을 프로세스로 변환하고 PCB를 생성한다.생성된 PCB 정보가 CPU 레지스터에 할당되면서 프로그램이 실행된다.  CPU는 여러 개의 프로세스를 어떻게 구분할까?Process Management 란?CPU가 프로세스가 여러 개일 때, CPU 스케줄링을 통해 관리하는 것을 의미이때 CPU는 각 프로세스들이 누군지 알아야 관리가 가능하다.프로세스들을 구분하기 위해 각 프로세스들이 가지고 있는 것이 Process Metadata 이다.Process MetadataProcess ID (PID) : 프로세스 식별 번호Process State : new, ready, running, waiting, termi..
[운영체제] 현재 컴퓨터의 발전 변천사 (프로세스와 스레드) 컴퓨터를 하면, 노래를 들으면서 웹 서핑을 하는 것과 같이 동시에 여러 프로그램이 실행된다. (사실 실행되는 것처럼 보인다.) 어떻게 여러 프로그램들이 동시에 실행되는가?그 원리를 알아보자! 📌 먼저 용어정리프로그램 (Program)컴퓨터가 실행할 수 있는 명령어들의 집합프로세스 (Process)컴퓨터에서 실행 중인 프로그램각각의 프로세스는 독립적인 메모리 공간을 할당 받음명령어들과 데이터를 가짐CPU (Central Processing Unit)명령어를 실행하는 연산 장치메인 메모리 (Main Memory)프로세스가 CPU에서 실행되기 위해 대기하는 곳I/O (Input / Ouput)파일을 읽고 쓰거나 네트워크의 어딘가와 데이터를 주고 받는 것입출력 장치(마우스, 모니터, 키보드 등)와 데이터를 ..
[운영체제] Swapping : Mechanisms ostep 21. swapping mechanismskorean_24. 물리 메모리 크기 극복 : 매커니즘24.1 스왑 공간물리 메모리가 부족할 때 사용하지 않는 페이지(데이터)를 일시적으로 저장하는 메모리 공간swap out : 메모리 페이지를 읽어 쓰기swap in : 메모리 페이지를 읽어 메모리에 탑재페이지 : 스왑 공간의 입출력 단위OS는 스왑 공간의 모든 페이지들의 디스크 주소를 기억스왑 공간의 크기시스템이 사용할 수 있는 메모리 페이지의 최대 수 결정4개의 페이지(물리 메모리)와 8개의 페이지를 위한 공간(스왑 공간)3개의 프로세스가 물리 메모리를 공유프로세스 전체가 물리 메모리에 올라가 있는 것이 아니라 프로세스의 일부 페이지만 물리 메모리에서 실행 : 나머지 페이지는 스왑 아웃 상태 → 실..
[운영체제] 동시성 vs 병렬성 프로세스 & 스레드 / 동시성 & 병렬성컴퓨터를 사용하다보면 유튜브를 보면서 워드 작업을 하면서 크롬으로 검색을 할 수 있다. 어떻게 컴퓨터는 이렇게 여러 가지 작업을 동시에 실행할 수 있는걸까? 컴퓨터는 여러 작업을 동시에 실행하기 위해 동시성(Concurrency) 과 병렬성(Parallelism) 개념을 활용하고 이를 구현하는 주요 방법은 프로세스(Process) 와 스레드(Thread) 를 사용하는 것이다. 운영체제(OS)는 CPU 스케줄링과 메모리 관리를 통해 이 과정을 조율한다.동시성과 병렬성이 어떻게 이루어지는지 이해하려면 프로세스와 스레드의 차이를 먼저 알아야한다.(추후 분리하여 정리 예정) 1️⃣ 프로세스와 스레드✅  프로세스(Process)운영체제에서 실행 중인 하나의 프로그램 단위운영..