본문 바로가기

xv6-book

xv6-book (Ch2-Operating system organization)

운영 체제 구성

운영 체제의 주요 요구 사항 중 하나는 동시에 여러 활동을 지원하는 것입니다. 예를 들어, 1 장에서 설명한 시스템 호출 인터페이스를 사용하는 프로세스는 fork를 사용하여 새로운 프로세스를 시작할 수 있습니다. 운영 체제는 이러한 프로세스들 사이에서 컴퓨터의 자원을 시간을 나눠 사용해야 합니다. 예를 들어, 하드웨어 CPU보다 더 많은 프로세스가 있는 경우에도, 운영 체제는 모든 프로세스가 실행할 기회를 확보해야 합니다. 또한, 운영 체제는 프로세스 간의 격리를 제공해야 합니다. 즉, 한 프로세스에 버그가 있고 오동작하는 경우에도 이에 영향을 받지 않는 프로세스가 있어야 합니다. 그러나 완전한 격리는 지나치게 강력하기 때문에 프로세스가 의도적으로 상호 작용할 수 있어야 합니다. 이러한 상호 작용의 예로는 파이프라인이 있습니다. 따라서 운영 체제는 세 가지 요구 사항 (다중화, 격리 및 상호작용)을 충족해야 합니다.

 

 

이 장에서는 이러한 세 가지 요구 사항을 충족하기 위해 운영 체제가 어떻게 구성되는지에 대한 개요를 제공합니다. 이를 위한 여러 가지 방법이 있지만, 이 텍스트는 많은 유닉스 운영 체제에서 사용되는 모노리식 커널을 중심으로 한 주류 디자인에 초점을 맞춥니다. 이 장은 또한 xv6에서 격리의 단위인 xv6 프로세스의 개요와 xv6가 시작될 때 첫 번째 프로세스의 생성에 대한 개요도 제공합니다.

 

Xv6는 멀티코어 RISC-V 마이크로프로세서에서 실행되며, 그 낮은 수준의 기능(예: 프로세스 구현) 중 상당 부분은 RISC-V에 특화되어 있습니다. RISC-V는 64비트 CPU이며, xv6는 "LP64" C로 작성되었습니다. 이는 C 프로그래밍 언어에서 long(L)과 pointer(P)가 64비트이지만 int는 32비트라는 것을 의미합니다.

 

완전한 컴퓨터의 CPU는 I/O 인터페이스의 형태로 많은 지원 하드웨어로 둘러싸여 있습니다. Xv6는 qemu의 "-machine virt" 옵션으로 시뮬레이션된 지원 하드웨어를 위해 작성되었습니다. 이에는 RAM, 부팅 코드를 포함한 ROM, 사용자의 키보드/화면과의 시리얼 연결, 그리고 저장용 디스크가 포함됩니다.

 

 

더보기

A key requirement : 핵심 요구 사항

affect : 영향을 미치다

assumes : 가정하다

'xv6-book' 카테고리의 다른 글

xv6-book (Ch2.2-User mode, supervisor mode, and system calls)  (0) 2024.04.30
xv6-book (Ch2.1-Abstracting physical resources)  (0) 2024.02.14
xv6-book (Ch1-과제)  (1) 2024.02.09
xv6-book (1.5 Real world)  (2) 2024.02.06
xv6-book (1.4 File system)  (1) 2024.02.05