본문 바로가기

3-2 학기/Operating Systems4

[운영체제] xv6 구조 및 동작 원리 운영체제 설계 과제를 구현하던 중, xv6 구조 및 동작 원리에 대해 자세하게 공부해보고 싶어 글을 남긴다.먼저 기본 개념 먼저 집고 가자. xv6xv6는 멀티프로세서 x86 및 RISC-V 시스템을 위해 개발한 교육용 운영체제이다.xv6를 가상 환경에서 실행 시키기 위해서는 리눅스에서 사용하는 가상머신인 QEMU를 사용하면 된다.- QEMU를 시작하는 명령어는 make qemu이며, - QEMU를 종료하는 단축키는 (맥북에서) control + A, X 이다. xv6 레포지토리를 복제할 수 있는 깃허브 주소는 아래와 같다.https://github.com/mit-pdos/xv6-public GitHub - mit-pdos/xv6-public: xv6 OSxv6 OS. Contribute to mit-p.. 2024. 10. 29.
[운영체제] Memory API ✅malloc()#include void *malloc(size_t size);void *calloc(size_t nobj, size_t size);void *realloc(void *ptr, size_t newsize); 위의 함수들은 메모리 할당을 위해 사용되는 라이브러리 함수이다. malloc()과 calloc()은 지정된 크기의 바이트 메모리를 할당받는다.malloc()의 경우, 할당된 메모리의 초기 값은 정의되지 않고 calloc()의 경우, 할당된 메모리를 모두 0으로 초기화한다. 또한 두 함수는 가용 리스트를 통해 첫 번째 블록에 접근한다.포인터를 따라 이동하면서 정해진 알고리즘에 의해 리턴할 블록을 찾으며, 적절히 포인터를 조정하여 가용 메모리 리스트에서 이 블록을 가져와 그 블록을 사용자.. 2024. 10. 14.
[운영체제] The Abstration : Address Space 운영체제 역사1. Early Sytems위 그림은 초기 운영체제의 모습이다.이때를 "선사시대"라고 부르기도 한다.(운영체제에서 말하는 선사시대란 가상 메모리를 사용하기 전의 시대를 의미한다.)물리 메모리에 하나의 실행 중인 프로그램이 존재하였다.특별히 가상화에 대한 개념은 없었다. 2. Multiprogramming and Time Sharing프로세스가 여러 개 올라가는 다중 프로그래밍 프로세스에서 제일 중요한 첫 번째 목표는 "보호"이다.본인이 가지고 있는 메모리 영역을 남들이 침범하지 않도록 하는 것이다. 동작 방법에 대해서 설명하자면, 여러 프로세스는 실행 준비 상태인 것이다.이때 OS는 프로세스를 CPU에게 전환하면서 실행한다. 3. 주소 공간 Address Space주소 공간이란, 운영체제가 .. 2024. 10. 13.
[운영체제] Introduction to Operating Systems I. Introudction to Operating Systems운영체제(OS)란, 컴퓨터에서 실행되고 컴퓨터 하드웨어를 관리하는 소프트웨어로, 다양한 애플리케이션 소프트웨어의 효율적인 실행을 위해 공통 서비스를 제공한다.   ✅가상화 (Virtualization)가상화란, 단일 CPU가 여러 소프트웨어를 동시에 실행하는 것처럼 보이게 하는 것을 의미한다.즉, 1개를 여러 개처럼 보이게하는 환상을 주는 것이다. * 추상화(Abstraction)와 헷갈리지 말자.하드웨어(CPU, Memory, Disk)를 추상화한 것이 소프트웨어(OS)인 것이다. ✅CPU의 가상화하드웨어의 도움을 받아 환상(illusion)을 제공한다.단일 CPU를 겉보기에 많은 수의 CPU가 있다는 환상을 제공하여 여러 개의 프로그램이.. 2024. 10. 10.