
컴퓨터는 동시에 일할 수 있을까? 우리 눈에는 마치 여러 작업을 동시에 처리하는 것처럼 보이는 컴퓨터. 근데 컴퓨터 내부에서는 정말로 여러 작업이 동시에 실행될까? 사실은 “같이”가 아니라 "조금씩 번갈아가며" 일을 하고 있다. 이걸 컴퓨터 세계에서는 동시성(conc

pintOS에서는 sleep_list , ready_list 등의 리스트를 이중연결리스트로 구현한다.이중연결리스트에 대한 설명이 상세히 나와있다.분석하기 이전에 이중연결리스트에 대해서 간단히 알아보자!컴퓨터 세계에서 데이터를 차곡차곡 저장할 때는 리스트(연결 리스트)라


일반적으로 가장 접하기 쉬운 운영체제는 windows일 것이다.운영체제(OS, Operating System)란 말 그대로 컴퓨터를 운영하기 위한 체계적인 시스템이다.즉, 컴퓨터의 총관리자라고 생각하면 이해하기 쉽다.이러한 관리시스템의 종류가 여러가지가 있다.그 중 가

운영체제를 직접 만들 수 있다면, 우리가 배운 운영체제 개념들을 눈으로 보고 손으로 체험할 수 있지 않을까? 바로 그런 목적에서 만들어진 것이 PintOS다. PintOS는 어떤 시스템인가? PintOS는 교육용 운영체제이다. 실제로 우리가 C 언어로 운영체제의 핵심

컴퓨터는 수많은 코드의 흐름으로 돌아간다.이 코드 흐름 하나하나를 우리는 스레드(Thread)라고 부른다.정확히 말하면,CPU가 명령어를 순서대로 실행해나가는 경로(흐름)이다.예를 들어보자.이 코드는 아침에 일어나서 행동하는 순서를 나타낸 것이다.이렇게 순서대로 처리되

PintOS가 부팅되면, 시스템은 mem_start부터 mem_end까지의 큰 메모리 공간을 확보한다.오로지 PintOS만을 위한 공간이다.이 메모리 공간은 크게 커널 영역과 유저 영역으로 나뉘며, 각 영역은 서로 다른 목적으로 사용된다.그렇다면, 가상 메모리(Virt

프로세스가 실행될 때 process_exec() → load() 함수 순으로 호출되며, lazy_load_segment()가 실행된다.이때 vm_alloc_page_with_initializer()를 통해 VM_UNINIT 타입의 페이지가 만들어진다.이렇게 등록된 페이

이전 글에서, 디스크에서 데이터를 다 로드하지 않고,page 구조체로 만들어서 가지고 있는다 라고 표현한 적이 있다.<참고>PintOS | 그림으로 따라가는 PintOS Lazy Loading & Swap 흐름사실 한 프로세스에 대한 데이터는, ELF 파일을 기반

process_exec() 부터 코드를 차근차근 따라가다 보면.. 뭔가 이상한 걸 발견했을 것이다.여기서 갑자기 VM_ANON 으로 타입을 설정해버린다.당황스럽다.가상메모리 구조를 열심히 공부했을 것이다.VM_ANON/ VM_FILE에 대해서 실컷 공부했는데 .. 놀랍