ComputerScience/OS
-
[OS] 주소 공간, 메모리 관리 API, 주소 변환의 원리ComputerScience/OS 2024. 3. 26. 01:13
이 글은 'OSTEP: Operating Systems Three Easy Pieces'를 참고하여 쓴 글로, 학습 기록용으로 작성된 글입니다. 따라서, 정확하지 않은 내용이 있을 수 있습니다. 옳지 않은 정보가 있다면 지나치지 마시고 수정 요청 댓글 달아주시면 감사하겠습니다. 🙂 16. 주소 공간의 개념 16. 1 초기 시스템 초기 시스템에는 메모리에 하나의 프로세스만 적재되었다. 특별한 가상화는 존재하지 않았다. 16. 2 멀티프로그래밍과 시분할 멀티프로그래밍 고가의 장비를 효율적으로 다루기 위한 시도로 멀티프로그래밍이 대두되었다. 여러 프로세스가 실행 준비 상태에 있으면 OS는 이 사이를 전환해가면서 실행했다. 시분할 일괄처리방식(batch computing)의 한계를 느껴 많은 사용자가 동시에 컴..
-
[OS] Swap, File-backed Page, DMAComputerScience/OS 2024. 3. 22. 15:01
10주차에 들어섰다. 이번 주차의 키워드들 중에서 내가 맡은 키워드는 swap disk, file-backed page, DMA이다. DMA는 이전에도 나왔던 키워드이긴 하지만 swap disk와 file-backed page는 처음 만나는 개념들이다. 한 번 살펴봐보자. Swap Swap RAM이외의 저장 공간을 사용하여 시스템의 가상 메모리 용량을 확장하는 기법이다. 보조적인 저장장치(HDD, SSD)에 있는 스왑 공간이나 스왑 파일을 이용한다. 스왑을 통해 운영체제는 RAM의 한계를 넘는 메모리 요구를 충족하고 더 많은 프로그램을 동시에 실행할 수 있게 된다. 가상 메모리(Virtual Memory)란? 메인 메모리의 크기가 한정되어 있는데 메인 메모리보다 크기가 큰 프로세스를 실행해야 한다면? 에..
-
[OS] File DescriptorComputerScience/OS 2024. 3. 18. 20:30
pintOS 시스템 콜을 구현하던 와중 파일, 파일 디스크립터, 파일 디스크립터 테이블 등과 같은 피상적으로만 알고 있던 개념이 나왔다. 이에 대해 이들이 무엇이고 왜 사용되며, 어떻게 사용되는지 알아보아야 구현이 가능하다 생각해 정리를 한 번 하고 넘어가고자 한다. 파일 디스크립터(File Descriptor) 파일 디스크립터는 운영체제가 파일을 다루기 위해 사용하는 추상화된 핸들이다. 즉, 파일이나 입출력 같은 복잡한 객체를 다룰 때 직접적인 세부 정보나 구현 방식 대신 간단한 식별자를 사용하는 것이다. 정수로 표현되며, 운영체제의 파일 시스템 테이블에 있는 파일이나 입출력 리소스를 가리킨다. 각 프로세스는 자신만의 파일 디스크립터 테이블을 가지고 있으며, 이 테이블을 통해 파일이나 기타 입출력 리소..
-
[OS] Virtual Address, Page Table, PML4ComputerScience/OS 2024. 3. 16. 20:34
pintOS 과제를 하던 중 Page Table 말고도 여러 가지 개념들이 나와서 정리를 한번 하고 가야 할 것 같아서 글을 쓴다. Virtual Address 프로세스가 메모리에 접근할 때 사용하는 주소이다. OS는 가상 주소를 사용해서 프로세스가 서로의 메모리 공간을 침범하지 않도록 격리한다. OS는 프로세스로 하여금 전체 메모리 공간을 사용할 수 있다고 '속인다' 또는 '환상'을 제공한다. x86-64 아키텍처에서의 가상 주소 구성 x86-64 아키텍처에서 가상 주소는 64비트로 구성되어 있고, 여러 단계의 페이지 테이블을 통해 물리 메모리 주소로 변환된다. 대부분의 x86-64 시스템은 실제로 48비트 혹은 57비트 가상 주소를 사용하고, 이는 CPU나 OS별로 다르다. 최상위 비트(47번째 비트..
-
[OS] User mode & Kernel modeComputerScience/OS 2024. 3. 12. 12:47
이 글은 'OSTEP: Operating Systems Three Easy Pieces'를 참고하여 쓴 글로, 학습 기록용으로 작성된 글입니다. 따라서, 정확하지 않은 내용이 있을 수 있습니다. 옳지 않은 정보가 있다면 지나치지 마시고 수정 요청 댓글 달아주시면 감사하겠습니다. 🙂 OS 과정을 진행해 오면서, 이해가 되지 않지만 그냥 슥~ 하고 지나간 부분이 여러 개 있었다. 그 중 하나가 바로 이 User mode와 Kernel mode이다. 이제는 키워드로도 등장해서, 더 이상 피할 수 없다! 바로 살펴보자. 6. Mechanism: Limited Direct Execution 우리가 가상화를 하는 이유는 무엇인가? 바로 하드웨어와 소프트웨어 기술이 발달하면서, 컴퓨터가 처리해야 할 일이 많아졌기 때..
-
[OS] 32 bit OS vs 64 bit OSComputerScience/OS 2024. 3. 12. 00:06
컴퓨터 시스템? CPU, OS? 컴퓨터 시스템은 하드웨어와 소프트웨어로 나눌 수 있는데, CPU는 하드웨어가 되고 OS는 소프트웨어가 될 수 있다. 우리가 흔히 컴퓨터 시스템을 논할때 컴퓨터 시스템이 32비트다 혹은 64비트다 라고 하는 것은 하드웨어와 소프트웨어 즉, CPU와 OS 모두를 포함하여 이야기 하는 것이라고 하는데.. 32비트? 64비트? OS관점에서 32/64비트와 CPU관점에서의 32/64비트, 또 시스템 관점에서의 32/64 비트는 비슷하면서도 조금씩 다른 의미를 갖고 있다. OS를 이야기 할때, 32/64 비트는 CPU가 단일 연산에 수행할 수 있는 데이터의 최대 크기를 뜻한다. 또한 CPU 관점에서는 이 비트가 레지스터 크기를 말할수도 있다는데.. 많이 헷갈린다. 이에 대해 좀 더 ..