도슐랭스타

OS - 운영체제 구조와 종류 본문

OS

OS - 운영체제 구조와 종류

도도.__. 2024. 4. 3. 23:12

커널(Kernel)

  • 운영체제의 핵심(Core)
  • 프로세스 관리, 메모리 관리, 저장장치 관리 등 운영체제의 필수 기능을 함.

인터페이스(Interface)

  • 커널 <- 인터페이스 -> 사용자
    커널에 사용자의 명령 전달하고 실행 결과를 사용자에게 전달.
  • GUL (Graphical User Interface): 그래픽 기반
  • CLI(Command Line Interface) : 텍스트 기반

시스템 호출(System Call)

  • '커널'이 제공하는 시스템 자원의 사용과 연관된 함수.
  • 커널이 제공하는 인터페이스
  • 응용프로그램이 커널 영역에 진입할 수 있는 '유일한 수단'.(다른 방법으로 커널에 들어오지 못함.)
  • 사용자 인터페이스 또는 응용프로그램이커널에게 접근하기 위한 수단
  • 컴퓨터자원의 효율적인 보호
    ex. 커피 머신을 모두가 이용하면 기계의 수명(자원)이 줄어듦.
  • 표준화된 접근
    ex. 커피 주문만 하면 됨.(커피를 직접 내리지 않아도 됨.)

직접 접근

  • 여러 응용 프로그램이 각자 지정한 위치에 데이터를 저장하려고 함
  • 다른 응용 프로그램의 데이터가 변형되거나 의도치 않게 지워질 수도 있음

시스템 호출을 통한 접근

  • '커널에게' 데이터를 저장해달라고 요청 해야함.
  • 데이터의 가져오거나 저장하는 것을 커널이 관리하기 때문에 컴퓨터 자원 관리가 수월함.

디바이스 드라이버(Device Driver)

  • 커널과 하드웨어의 인터페이스 역할.
  • 마우스 같이 간단한 제품은 커널이 기본 드라이버로 가지고 운영함.
  • 그래픽카드와 같이 복잡하고 제품에 따라 기능이 서로 다른 특징을갖는경우제작사가 별도로 드라이버를 제공함.

커널의 구조

커널의 핵심 기능

  • 프로세스 관리
    • 프로세스(응용프로그램)에 CPU를 배분.
    • 제반 환경을 제공
  • 메모리 관리
    • 작업 공간을 배치
    • 가상의 공간을 제공
  • 파일 시스템(NTFS) 관리
    • 데이터 저장을 위한 인터페이스를 제공
  • 입출력 관리
    • 필요한 입력과 출력 서비스를 제공
  • 프로세스 간 통신(IPC) 관리
    • 공동 작업을 위한 각 프로세스간 통신 환경을 제공
  • 네트워크 관리

특성

  • 운영체제가 점점 더 다양한 하드웨어와 소프트웨어를 지원 -> 커널 구조도 점점 '복잡'해 지고 있음.

 

단일형 구조 커널(Monolithic Architecture)

  • 초창기의 운영체제 구조
  • 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성.
  • 장점
    • 모듈 간의 통신 비용이 줄어들어 효율적인 운영이 가능함.
  • 단점
    • 복잡한 구조로 인해 버그나 오류 수정이 어려움.(하나로 통째로 있음.)
    • 운영체제의 여러 기능이 '상호 의존성'이 있으므로 기 능상의 '작은 결함이 시스템 전반'에 미침.
    • 다양한 환경의 시스템에 적용하기 어려움 -> 호환성 부족(Incompatibility)
  • 현대의 운영체제 : 매우 크고 복잡하기 때문에 완전 단일형 구조의 운영체제를 구현하기가 어려움

계층형 구조 커널

  • 유사 기능을 가진 모듈을 하나의 계층으로 구현
  • 계층 간의 통신을 통해 운영체제 서비스를 지원

마이크로 구조 커널

  • 가장 기본적인 기능만 제공
    ex. 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등
  • 커널의 각 모듈을 세분화
  • 모듈 간의 정보 교환은 마치 프로세스 간 통신처럼 이루어짐.(각자 연결)

가상 머신(Virtual Machine)

  • 가상 머신을 사용하면 응용 프로그램이 모두 동일한 환경에서 작동하는 것처럼 보임.
  • 구조 : 운영체제 - 가상머신 - 응용프로그램
    운영체제와 응용 프로그램 사이에서 작동하는 중간 프로그램임. (미들웨어: Middleware)

운영체제의 종류

유닉스의 개발과 확산

  • 1969년 AT&T의 연구원으로서 멀틱스(Multics) 프로젝트의 결과물
  • C언어를 사용했기에 인기가 많았음.

리눅스(Linux)의 개발

  • 1991년에 리누스 톨바즈(Finland, University of Helsinki)에 의해 커널 개발
  • 현재 GPL(GNU Public License)로 배포되어 있음.

애플의 등장

  • 1976년 스티브 잡스는 애플(Apple Inc.)를 창업
  • 1977년 애플 II라는 개인용 컴퓨터를 대중화 함
  • macOS : 1980년대 UNIX를 기반으로 개발한 운영체제
  • 전략
    • 기술을 발전시키는 것보다 사용자에게 편리함을 제공
    • GUI와 같은 사용자 편의를 위한 인터페이스 기술 개발에 집중

윈도우의 출시

  • MS-DOS (Diskette Operating System)에 멀티태스킹 기능화 GUI 환경을 적용한 응용프로그램에서 시작
  • 1995년 이후 응용프로그램에서 운영체제로 전환

안드로이드

  • 리눅스 커널을 기본 운영체제로 하며 스마트폰 또는 임베디드 장치를 위해 사용자 인터페이스 및 기타 유틸리티를 제공
  • GNU의 리눅스를 사용하여 제작되었기 때문에 GPL을 따름
  • 누구나 공짜로 사용할 수 있음
  • 새로운 버전과 동시에 소스코드도 공개하기 때문에 누구나 수정 및 재배포가능

 

반응형

'OS' 카테고리의 다른 글

OS - 병렬처리(Parallel Processing)  (0) 2024.05.23
OS - 인터럽트(Interupt)  (0) 2024.05.16
OS - 성능향상기법  (1) 2024.05.09
OS - 컴퓨터 시스템 구조  (0) 2024.05.05
Comments