페이징(Paging) 프로세스는 생성되면 실제 필요한 데이터를 일정한 특정 단위의 메모리로 조각낸다. 이 조각낸 메모리들은 모두 크기가 같으며, 조각낸 것들을 묶어서 물리 메모리에 넣고 필요할 때 조회하며, 필요없어지면 다시 프로세스에게 반환한다. 프로세스는 작업을 처리하기 위해 가상 주소를 CPU에게 전달하며, CPU는 받은 가상주소를 물리주소로 변환하고 데이터를 가져와야 한다. 이때, 특정 데이터가 들어있는 데이터 조각 묶음을 계산하는 알고리즘을 페이징이라고 한다. 각 페이지들의 크기는 같으며, 생성된 순서대로 순번을 차례대로 부여받는다. 페이지 테이블(Page Table) 페이지 테이블이란 물리 주소(physical address)의 페이지를 실제 물리 주소 정보와 매핑한 표를 담고 있는 테이블이다..
컨텍스트 스위칭(Context Switching) 컨텍스트 스위칭(Context Switching)은 운영체제가 현재 실행 중인 프로세스와 다음으로 실행할 프로세스 사이의 교체를 의미한다. 즉, 한 프로세스가 실행 중인 상태에서 다른 프로세스로 교체하기 위해 현재 프로세스의 상태 정보를 저장하고, 다음 프로세스의 상태 정보를 읽어오는 작업을 수행하는 것이다. 컴퓨터를 하다보면 여러개의 프로그램을 띄워 놓고 작업을 해본적이 있을 것이다. 예를 들면, 한글을 띄워놓고 타이핑을 하다가도 코드를 컴파일 하고, 구글에 검색을 하고 등등.. 여러가지 프로그램을 실행중인 상태에서 하나씩 작업을 할 때, 우리는 각 프로그램에서 작업했던 부분들을 그대로 유지한채 이어서 작업을 진행해 나갈 수 있다. 컨텍스트 스위칭은 이..
프로세스(Process) 프로세스는 실행 중인 프로그램을 의미한다. 프로세스는 운영체제에 의해 관리되며, 독립적으로 실행되고 자원을 할당 받을 수 있는 단위이다. 운영체제는 프로세스들에게 적절히 자원들을 분배하여 여러가지 작업을 수행할 수 있게 한다. 프로세스에 대해서 예를 들어보자. 본인은 엑셀 프로그램(excel.exe)을 켰다. 이때 엑셀을 실행시키기 위해 컴퓨터는 엑셀 프로그램을 읽어야 한다. 컴퓨터에서 모든 프로그램은 코드로 작성되어 있다. 이 코드 파일을 컴퓨터가 읽으려면 CPU가 이해할 수 있는 형태인 저급 언어(0과 1로 이루어진 기계어)로 프로그램이 만들어져야 한다. 0과 1로 작성된 실행 프로그램을 코드 이미지 또는 바이너리라고 부르며, 보통 exe란 확장자가 붙는다. 이 exe 프로그..