지난 게시글에서 페이징의 정의와 가상메모리에 대해 간략히 설명했습니다. 그리고 페이징에 대해 자세한 설명을 작성해 보도록 하겠습니다. 가상메모리란?가상 메모리는 컴퓨터 시스템에서 실제 물리 메모리보다 더 큰 주소 공간을 사용할 수 있도록 하는 기술입니다. 이는 보조 저장 장치를 활용하여 물리 메모리의 한계를 넘어서 프로세스가 더 큰 메모리 공간으로 사용할 수 있게 합니다. 가상 메모리는 메모리 관리에 효율성을 높이고, 프로세스 간의 메모리 보호와 격리를 강화합니다. 특징확장된 메모리 공간물리 메모리 크기에 구애 받지 않고, 큰 주소 공간을 제공하여 큰 프로그램 실행을 지원메모리 보호각 프로세스는 독립적인 가상 주소 공간을 가지므로, 한 프로세스가 다른 프로세스의 메모리에 접근하는 것을 방지효율적인 메모..
페이징이란?프로세스를 일정 크기로 자르고, 이를 메모리에 불연속적으로 할당하는 것 프로세스의 논리 주소 공간을 페이지(page)라는 일정 단위로 자르고, 메모리의 물리 주소 공간을 프레임(frame)이라는 페이지와 동일한 일정한 단위로 자른 뒤페이지를 프레임에 할당하는 가상 메모리 관리 기법 페이징에서의 스와핑페이징 역시 가상메모리의 기법 중 하나로 물리 메모리 보다 큰 프로세스를 실행하기 위해 스와핑을 합니다. 프로세스 단위의 스왑 인, 스왑 아웃이 아닌 페이지 단위의 스왑인(페이지인), 스왑 아웃(페이지 아웃)메모리에 적재된 필요가 없는 페이지들은 보조기억장치로 스왑 아웃실행에 필요한 페이지들은 메모리로 스왑 인 이 과정을 자세히 설명하면 요구 페이징과 페이징 교체로 설명 할 수 있습니다. 페이지테이..
세그먼테이션이란?컴퓨터 메모리 관리에서 프로세스의 주소 공간을 서로 다른 크기의 세그먼트로 나누는 기법입니다. 각 세그먼트는 코드, 데이터, 스택과 같은 논리적인 기능 단위로 구분됩니다. 이는 프로세스의 논리적 구조를 메모리에 반영하여 효율적으로 관리할 수 있게 합니다. 특징논리적 단위 관리 : 세그먼트는 코드 세그먼트, 데이터 세그먼트, 스택 세그먼트 등 논리적 단위로 나뉩니다. 프로세스의 각 부분이 독립적으로 관리될 수 있음을 의미합니다.다양한 크기 : 각 세그먼트의 크기는 서로 다를 수 있으며, 프로세스의 요구에 따라 동적으로 조정될 수 있습니다. 메모리의 유연한 사용을 가능하게 합니다.메모리 보호 : 세그먼트 별로 접근 권한을 설정할 수 있어 메모리 보호가 용이합니다.공유 : 특정 세그먼트..
물리 주소와 논리 주소로 나눈이유는 다음과 같습니다.새롭게 실행되는 프로그램은 새롭게 메모리에 적재실행이 끝난 프로그램은 메모리에서 삭제같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라짐 물리주소실제 메모리 칩에 존재하는 주소로, CPU가 메모리에 직접 접근할 때 사용하는 주소 논리 주소CPU가 생성하는 주소로, 프로그램이 실행될 때 참조하는 주소 *가상 주소?논리 주소로, 운영 체제와 MMU에 의해 물리 주소로 변환되기 전의 주소 가상메모리? 가상 주소?가상 메모리와 가상(논리) 주소 공간은 다른 개념혼용해서 사용되고 있긴 함가상 주소 공간은 각 프로세스 당 주어지는 논리적인 공간가상 주소 공간의 크기는 물리 메모리의 크기와는 독립적이며, 레지스터 크기에 종속적이다.프로세스의 주소 공간은..
PCB와 메타데이터PCB는 프로세스의 다양한 메타데이터를 포함합니다. 이 메타데이터는 운영체제가 프로세스를 효과적으로 관리하고, 컨텍스트 스위칭을 수행하는데 필수적입니다. PCB에 포함된 주요 메타데이터 프로세스 상태 : 프로세스가 실행, 준비, 대기 중인지 등의 상태 정보프로세스 식별자(PID) : 각 프로세스를 고유하게 식별하기 위한 번호프로그램 카운터(PC) : 프로세스가 다음에 실행할 명령어 주소CPU 레지스터 : 프로세스의 현재 레지스터 상태메모리 관리 정보 : 프로세스의 주소공간, 페이지 테이블, 세그먼트 테이블등의 메모리 관련 정보계정 정보 : CPU 사용시간, 실제 사용시간, 사용자 ID등의 계정정보입출력 상태정보 : 프로세스가 열어 놓은 파일이나 사용하는 입출력 장치에 대한 정보 Co..
시스템 호출(system call)은 운영 체제의 핵심 기능 중 하나로 사용자 모드에서 실행되는 애플리케이션 프로그램이 커널 모드에서 실행되는 운영체제의 서비스를 요청하는 매커니즘입니다. 시스템 콜을 통해 애플리케이션은 하드웨어 자원에 접근하거나 파일 시스템, 프로세스 관리, 메모리 관리 등의 기능을 사용할 수 있습니다. 특징모드 전환 : 시스템 콜을 통해 사용자 모드에서 커널 모드로 전환됩니다. 이는 보안과 안전성을 위해 중요한 과정입니다.프로그래밍 인터페이스 : 시스템 콜은 운영체제의 라이브러리로 다양한 프로그래밍 언어에서 이를 호출하여 OS기능을 사용할 수 있습니다추상화 : 시스템 콜은 하드웨어와 직접 상호 작용하는 것을 추상화하여, 프로그램이 더 쉽게 하드웨어를 사용할 수 있도록 합니다. 주요 시..
인터럽트란?사전적 의미는 '방해하다, 중단시키다'CPU의 작업을 방해하는 신호를 인터럽트라고 합니다.인터럽트 종류에는 크게 동기 인터럽트와 비동기 인터럽트가 있습니다.동기 인터럽트CPU에 의해 발생하는 인터럽트CPU가 명령어들을 수행하다가 예상치 못한 상황이 마주쳤을 때, CPU가 실행하는 프로그래밍상의 오류와 같은 예외적인 상황에 마주쳤을 때 발생하는 인터럽트가 동기 인터럽트입니다.동기 인터럽트는 예외라고 부르기도 합니다. 비동기 인터럽트주로 입출력장치에 의해 발생하는 인터럽트알람과 같은 알림 역할을 합니다.일반적으로 비동기 인터럽트를 인터럽트라 합니다.하드웨어 인터럽트라고도 합니다.하드웨어 인터럽트알림과 같은 인터럽트CPU는 입출력 작업 도중에 효율적으로 명령어를 처리하기 위해 이런 알림과 같은 하드..
CPU 스케줄링이란?CPU 스케줄링은 운영체제의 주요 기능 중 하나로, 시스템에서 여러 프로세스를 효울적으로 관리하고 실행하기 위해 CPU 시간을 할당하는 방법을 결정하는 과정입니다. 하나의 CPU 코어는 한 번에 하나의 작업만 실행할 수 있기 때문에 스케줄링 알고리즘이 필요합니다. 작동 원리프로세스 생성 : 새로운 프로세스가 생성되면 준비 큐에 추가됩니다.큐 관리 : 준비 큐는 프로세스들이 대기하는 곳으로, 각 프로세스는 CPU를 기다립니다.스케줄링 결정 : 스케줄러는 특정 알고리즘에 따라 준비 큐에서 다음 실행할 프로세스를 선택합니다.문맥 교환 : 선택된 프로세스가 CPU에서 실행되고 있는 프로세스와 교체되며, 이 과정은 문맥 교환이라 불립니다.프로세스 실행 : 선택된 프로세스는 CPU에서 실행되며,..