전체 글

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