Apple is Apple
article thumbnail
Published 2024. 6. 17. 21:47
[OS]2 - 핵심 컴포넌트 CS/OS

운영체제 핵심 컴포넌트

운영체제는 프로그램 실행환경을 제공하고 프로그램과 유저 사이를 잇는다.

User와 Kernel을 연결하므로써 잇는다 -> system call

System Call을 통해 kernel의 기능사용을 통제한다.

 

운영체제는 사용자의 시스템 사용을 위해 다양한 기능(함수)들을 제공한다.

  • User Interface (GUI, CLI등)
  • 프로그램 실행(.exe)
  • 입출력 기능 (키보드, 마우스)
  • 파일 시스템 관리
  • 에러 관리

등과 같은 기능들을 제공하고 이와 관련된 System Call 이 존재한다.

시스템 콜(System Call)

System Call

  • 운영체제에서 제공된 서비스를 호출하기 위한 프로그래밍 인터페이스 (like API)
  • 주로 c/c++로 작성되어 있음

 

특징

  • 각 System Call에는 고유 번호가 할당되어 있음, 인덱스 테이블에 의해 번호가 관리됨
  • System Call  인터페이스는 의도된 시스템을 호출 (OS 커널을 호출하고 시스템 호출의 상태와 임의의 반환 값을 반환)
  • Programming Interface이기 때문에 사용자는 내부 구조를 알 필요가 없음 - 가져다 사용하기만 하면 됨

System Call 실행 구조

 

++ Parameter를 갖는 몇 가지의 System Call

  1.  레지스터에서 동작하는 System Call
  2. 메모리와 주소 블럭 같은 block(or table) 형식 - 메모리에 주소를 전달하기 위해 파라미터가 필요
  3. Stack - Parameter를 push, pop

-> Block과 Stack구조는 파라미터 크기, 갯수의 제약이 없음

운영체제 구조 (예시)

● 간단한 구조 - MS DOS

 

  1. 최소한의 메모리 공간을 차지하도록 설계되어있음
  2. 모듈 개념이 없음
  3. 필요에 따라 컴포넌트들이 만들어짐
  4. 사용자가 ROM까지 자유롭게 접근 가능 -> 프로그램 다운 확률이 커짐

MS-DOS 모식도

 

 

● 간단하지 않은 구조 - UNIX

  1. 하드웨어 기능에 의해 제한 될 수 있음
  2. 두 부분으로 나누어져 있음
    1. System Programs
    2. Kernel
      1. System Call 인터페이스와 물리적 하드웨어로 모든 것(시스템)으로 구성됨
      2. 파일 시스템, CPU 스케줄링, 메모리 관리 및 기타 운영 체제등 많은 기능 들을 하나의 레벨(층)에 의해 제공

UNIX 구조

● 층계구조

  1. 운영체제를 층계로 나누어 관리
  2. 최상층(UI) ~ 최하층(하드웨어)로 나누어 층 별로 관리를 함
  3. 장점 - 디버깅이 쉬움 (어디서 문제가 발생했는 지 파악하기가 쉽기 때문에)
  4. 단점 - 층 구조라는 것이 어려움(계층을 나누기가 어렵다), 다른 구조에 비해 비효율적이다 (층계 구조 때문에 거쳐가야 하므로 메모리와 속도의 성능이 저하됨)

층계 구조 구조도

● 마이크로 커널 구조 (최소화 구조)

  1. 기존 커널에 있던 기능들을 사용자 공간으로 가져옴
  2. 사용자 모듈 사이에서 메세지를 전달하며 통신함
  3. 장점 - 확장성이 좋음, 새로운 운영체제에 이식하기가 좋음, 더 신뢰성이 있음(커널모드에서 덜 실행 되므로)
  4. 단점 - 항상 메세지를 주고 받으며 통신하기 때문에 속도 저하의 문제가 있음

마이크로 커널 구조도

● 모듈 구조

  1. modern 운영체제 구조
  2. 커널 모듈을 Loading 하여 사용
  3. 새로 추가할 모듈을 동적으로 커널에 모듈을 탈부착 가능 (기존에는 커널 자체를 고치고 재시작했어야 했음)
  4. 층계 구조와의 비교 
    1. 각 커널 섹션이 인터페이스를 정의하고 보호한다는 점에서 계층화된 접근 방식과 유사함
    2. 모듈 구조는모든 모듈이 다른 모듈을 호출할 수 있기 때문에 더 유연함
  5. 마이크로 커널 구조와의 비교
    1. 기본 모듈이 핵심 기능과 다른 모듈과 로드 및 통신하는 방법에 대한 지식만 가지고 있다는 점에서 마이크로커널 접근 방식과 유사함
    2. 모듈 구조는 모듈 간의 통신을 위해 메시지 전달이 필요하지 않다는 점에서 마이크로 커널  방식보다 성능이 우수

 

사진 출처: Provided by Operating Systems Concepts, 10th Edition (Abraham Silberschatz, Peter Baer Galvin, Greg Gagne)

'CS > OS' 카테고리의 다른 글

[OS] 6 - CPU Scheduling (1)  (0) 2024.08.23
[OS] 5 - Thread  (0) 2024.08.06
[OS] 4 - 프로세스 간 통신  (0) 2024.07.20
[OS] 3 - 프로세스  (0) 2024.06.21
Operating System basic  (1) 2024.04.22
profile

Apple is Apple

@mjjjjjj