본문 바로가기

전체 글

(16)
[OS] CPU 가상화 (CPU Virtualization): 2. Limited Direct Execution: time sharing, context switch *이 글은 Operating Systems: Three Easy Pieces(운영체제 아주 쉬운 세 가지 이야기)를 바탕으로 작성되었습니다. 첨부한 모든 그림은 해당 도서에서 가져온 자료입니다. 내용 중 잘못된 부분이 있다면 알려주세요 :)  우리는 여러 프로그램을 동시에 실행하길 원한다.이를 위한 OS의 핵심 개념이 process, 실행 중인 program이라는 것을 지난 글에서 알아보았다.OS는 CPU를 time-sharing하여, 실행 중인 process를 다른 process로 scheduling하여 context switch함으로 여러 프로그램이 동시에 실행하는 환상을 만들어준다고 했었다. 그럼 어떻게 CPU time-sharing을 효율적으로 할 수 있을까?시스템에 오버헤드 없이 구현할 수 있을..
[OS] CPU 가상화 (CPU Virtualization): 1. 프로세스란 *이 글은 Operating Systems: Three Easy Pieces(운영체제 아주 쉬운 세 가지 이야기)를 바탕으로 작성되었습니다. 첨부한 모든 그림은 해당 도서에서 가져온 자료입니다. 내용 중 잘못된 부분이 있다면 알려주세요 :) 우리는 여러 프로그램을 동시에 실행하길 원한다. 운영체제는 여러 프로그램들이 실행되는 것처럼 환상을 만들어(CPU를 가상화), 이를 가능하게 만든다. 이 과정에서의 운영체제의 핵심 개념 중 하나는 프로세스이다. 프로세스는 현재 실행 중인 프로그램으로 정의된다. 하나의 프로세스를 실행하고, 중단하고 다른 프로세스를 scheduling하여 실행을 반복하며, 실제로 여러 프로그램이 실행되고 있다고 느끼게 만든다. 이를 time-sharing이라고 하며, 하나의 프로세스를 ..
[OS] 메모리 가상화(Memory Virtualization): 5. Paging: 개요 *이 글은 Operating Systems: Three Easy Pieces(운영체제 아주 쉬운 세 가지 이야기)를 바탕으로 작성되었습니다. 첨부한 모든 그림은 해당 도서에서 가져온 자료입니다. 내용 중 잘못된 부분이 있다면 알려주세요 :) 메모리 관리의 계속해서 언급한 문제가 무엇인가?!!!! 바로 단편화(fragmented)이다... 가변 크기로 메모리를 분할하여 할당하는 방법인 segmentation도 단편화 문제... 그럼 고정된 크기로 메모리를 분할하여 사용하면 어떨까? 이 방법이 바로 페이징 Paging 이다. 이번 글에선 이 페이징에 대해 알아보자! 🧐 Paging이란 공간을 동일 크기의 조각으로 분할하는 방법이다. 이 fixed-size(고정된 크기)를 page라고 부른다. 아래 그림으로 ..