CS/OS

[OS] - OS Structure(2) : System Program, Virtual Machine

JWonK 2023. 3. 21. 12:50
728x90
반응형

▶ 시스템 프로그램

: 프로그램의 개발과 실행을 위해 편리한 환경을 제공해주는 것. 개발자 눈에 보이는 것들 (System Calls은 눈에 보이지 않는 것들이다.)

 

시스템 프로그램 (1) - File Management

: Create, Delete, Copy, Rename, Print, Dump, List

 

 시스템 프로그램 (2) - Status Information

: 상태의 정보, 시스템 시간, 날짜, 메모리 여유 공간, 사용자 수 등에 대한 정보, 출력을 위해 내보내는 Format, Print 등

시스템 구성 정보를 registry에 저장.

 

 시스템 프로그램 (3) - File Modification

: 파일 수정과 관련된 기능이다. Text editors, Search Contents of Files, Programming Lauguege Support (Compilers, assemblers, debuggers, interpreters), Program loading and Execution, relocatable loaders, linkage editors(라이브러리 내부와 연결), Overlay-loaders(작동이 끝난 작업과 시작해야하는 작업을 loader)

- Communications : email, log in remotely, trasfer files

 

 

 운영 체제 설계와 구현

  • 목표와 구조를 정의하는 과정으로 시작된다.
  • 하드웨어, system type을 선택하는 것에 영향을 받는다.
  • 목표
    • 사용자 목표 : 사용하기 편리, 배우기 쉬워야 하고 신뢰성과 안전이 높아야 하며 빨라야 한다.
    • 시스템 목표 : 디자인과 구현 및 관리가 쉬워야 한다. 신뢰도가 높아야 하며 에러 없이 효율적이어야 한다.
  • 정책과 기술적 요소가 분리되어야 독립적으로 관리가 용이하다.

 

운영 체제의 간단한 구조

MS-DOS는 메모리가 굉장히 작아(64KB) 제약사항이 많았다.

 

원래 I/O를 이용하여 사용하면 Application Program → Resident System Program → MS-DOS device drivers → ROM BIOS device drivers(하드웨어) 순으로 진행되는 것이 맞다. 하지만 메모리의 영향으로 인해 다른 Path가 존재했었다. 따라서, 기능 분리가 제대로 이루어지지 않았었다.

 

 

 한 단계 발전한 구조

여러 Layer로 운영 체제의 기능을 모두 분리. 각 Layer 층은 하위 Layer의 정보를 종합적으로 이용하여 해야하는 기능을 수행한다. 즉, 상위 Layer의 정보는 알 수 없다.

 

 

 

Unix

Unix는 크게 2파트로 나누어 볼 수 있다.

  • Kernel : 위 사진에서 보이는 것처럼 Kernel에 너무 많은 기능이 포함되어 있는 것이 단점이다.
  • System Programs

 

 

MicroKernel System Structure : 조금 더 발전한 형태의 구조

  • 핵심적인 기능만 갖도록 Kernel 경량화
  • 핵심적인 기능만 남기고 다른 기능들은 모듈화하여 Message Passing 방법으로 통신한다.
  • 장점 
    • Microkernel 기능 확장하기 용이
    • 새로운 컴퓨터 시스템에 설치하기 쉬움, 오류 가능성도 낮고 경량화 되었기 때문
    • 신뢰성이 더 높아지고 안정성이 올라감
  • 단점
    • 통신의 수가 늘어나 Message Passing Header 수가 커질 수 있다.

 

▶ Modules

  • 대부분 운영체제 시스템은 kernel modules로 구현되어 있다.
  • Layerd도 kernel modules로 구성되어 있지만 MicroKernel이 좀 더 유연하게 확장 가능하다.

 

 

Virtual Machines

  • CPU 스케줄링을 통해 자원을 배분하여 가상 머신의 성능을 할당한다.
  • Spooling and a file system을 이용하여 각자 입출력 장치가 있는 것처럼 사용한다. (하드 디스크도)
  • Operator's console도 존재
  • 가상 머신을 이용하여 시스템 자원을 보호할 수 있고 분리를 확실하게 할 수 있다.

 

대표적인 Virtual Machine의 VMware Architecture

  • Host Operating System(Linux)가 존재하고 그 위에 가상 머신의 운영 체제가 3개 존재

 

 

  • 호환성이 좋은 Java Virtual Machine

 

 

Operating System Generation (설치)

  • SYSGEN program이 하드웨어의 각 정보를 종합한다.
  • Booting(Bootstrap Program/Bootstarp loader -ROM) 과정 진행

 

 

System Boot

  • 크게 두 가지 단계로 진행
  • 첫 번째는 Bootstrap을 loader를 찾는다.
  • 두 번째는 Bootstarp을 실행한다.
728x90
반응형