본문 바로가기

개발/OS

(2)
가상메모리란(Virtual Memory) 가상메모리란? 프로세스를 메모리와 보조저장장치에 나누어 저장, 프로세스를 실행하기에 충분히 큰 메모리로 보이게 만드는 기법이라고 볼 수 있다. OS 마다 세부 구현 방법은 요구 페이징, 요구 세그멘테이션 등으로 방법은 다르다. 가상메모리 등장 배경 한 프로세스가 모든 메모리에 적재되어야지만 프로그램이 실행된다는건 가장 간편하지만 방법일수도 있겠지만, 실행되는 프로세서의 크기가 물리적인 메모리의 크기로 제한된다는 기본적인 한계가 있다. 즉 물리 메모리보다 큰 크기의 프로세스는 실행될 수 없다는 제약이 따르게 된다는 단점이 발생하게 된다. 또한 동시에 수행되는 프로세스들의 크기의 총합은 물리 메모리보다 클 수 없다는 단점도 발생하게 된다. 이와같은 단점을 보완하기 위해 등장한 개념이 가상메모리이다. 32비트..
프로세스(Process)의 이해 *뇌를 자극하는 윈도우즈 시스템 프로그래밍, 제프리 리처의 WINDOWS VIA C/C++을 기반으로 작성한 내용입니다. 프로세스란? 프로그램을 실행시키면 메모리에 할당이 이뤄지고, 이 메모리 공간으로 바이너리 코드가 올라가게 되는데, 이 순간부터 프로그램은 프로세스라 불리게 된다. 즉 프로세스란 수행중인 프로그램의 인스턴스이다. 프로세스 구성 요소 - 전역변수, static 변수의 할당을 위해 존재하는 Data 영역 - 지역변수 할당과 함수 호출 시 전달되는 인자값들의 저장을 위해 존재하는 Stack 영역 - 동적할당을 위해 존재하는 Heap 영역 - 실행파일을 구성하는 명령어들이 올라가는 Code 영역 위 4가지 영역이 모여 프로세스가 되는 것 이다. 프로세스의 스케줄링 프로세스의 CPU 할당 순서 ..