반응형
Notice
Recent Posts
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Today
Total
관리 메뉴

오식랜드

[운영체제] 운영체제와 커널, 가상머신의 개념 본문

dev-log/cs

[운영체제] 운영체제와 커널, 가상머신의 개념

개발하는 오식이 2023. 9. 27. 14:18
반응형

운영체제와 커널, 가상머신의 개념

운영체제

  • 하드웨어와 소프트웨어의 사이
  • 정확히는 ‘시스템 소프트웨어’ 중 하드웨어와 가장 가까움
  • 컴퓨터 자원을 사용할 수 있는 인터페이스 제공
  • 모든 컴퓨터 자원을 숨기고 ‘정해진 방법으로만’ 자원을 사용할 수 있게 제한

임베디드 운영체제

: 컴퓨터가 아닌 다른 목적을 가진 기계가 컴퓨터처럼 동작할 수 있게 만든 것

  • cpu 성능이 낮다
  • 메모리 용량이 적다
  • PC보다 크기가 작다 (커지면 그게 PC임)
  • 기능 향상이 가능하다

운영체제의 역할

: 하드웨어의 자원을 효율적으로 처리하는게 목표

  • 자원 관리 (효율성)
    • 컴퓨터 시스템 자원을 적당한 순서로 배분 및 회수
    • 여러 프로그램이 동시에 잘 돌아가게 해야 함
    • 같은 자원으로 더 많은 작업량
    • 같은 작업량으로 더 적은 자원
  • 자원 보호 (안정성)
    • 비정상적인 작업으로부터 자원 보호 (에러 시 기존 데이터가 사라지지 않게 보호)
    • 문제 발생 시 이전으로 복귀 (fault-tolerance)
  • 하드웨어 인터페이스 제공 (확장성)
    • 사용자가 복잡하지 않게 사용할 수 있는 ‘일관된 방법’ 제공
    • 다양한 자원을 추가하고 제거하기 쉽게 해야함
  • 사용자 인터페이스 제공 (편리성)
    • 운영체제를 편리하게 사용하도록 지원
    • 사용자에게 편리함 제공
    • ex) 과거에는 커멘드 창으로 작업하던걸 지금은 GUI로 작업

커널

: 운영체제의 핵심 기능만 모아둔 것

  • API
    • 응용 프로그램이 커널에 접근할 수 있도록 커널이 제공하는 인터페이스
  • 시스템 호출
    • 응용프로그램이 하드웨어 자원에 접근하거나, 운영체제의 서비스를 이용할 때 필요
    • 운영체제에서는 커널이 제공하는 서비스를 시스템 호출로 제한
    • 다른 방법으로는 자원에 접근하지 못하게 보호
  • 드라이버
    • 커널에 속한다
    • 디바이스 연결에 사용
    • 요즘은 표준화되어 운영체제에서 자체 설치 가능 (ex. USB 꼽으면 바로 실행되는 것)
    • 표준화 : 인터페이스가 통일되어있다는 뜻

커널이 하는 일

*커널의 목표 : 자원관리 (운영체제의 목표도 동일)

  • CPU 관리
    • 프로세스에 CPU 배분
    • 프로세스 : 메모리에 있던 프로그램이 CPU에 적재된 상태
  • 메모리 관리
  • 파일 시스템 관리 (탐색기)
  • 입출력 관리 (장치 관리)
  • 프로세스 간 통신 관리
    • 공동 작업을 위한 통신 환경 제공

커널의 구성

  • 단일형 (Monolitic) 구조
    • 여러 모듈들이 하나로 묶여있음
    • 상호 의존도가 높아서 작은 결함이 전체에 번짐
    • 요즘에는 모듈이 많아져 구현이 어려움
    • 다양한 환경과 호환이 어려움 (하드웨어가 다른 곳과 호환이 안됨)
    • 장점 → 모듈 간 통신이 적어 효율적인 운영 가능
  • 계층형 (Layered) 구조
    • 비슷한 기능을 하는 모듈들이 하나의 계층으로 묶여있음
    • 시스템 설계나 구현이 단순해져서 유지보수도 간단함
    • 계층의 정의가 쉽지 않음 (표준화가 되어있지 않음 → 시스템마다 구조가 다름)
    • 단점 → 하나의 기능이 실행될 때 거쳐야하는 계층이 많아 통신 횟수가 많음 → 성능 저하
  • 마이크로 구조 커널
    • 커널에서는 기본적인 기능만 포함하고 기타 기능은 사용자 영역에서 수행
    • 기본적인 기능 : 프로세스 관리, 메모리 관리, 프로세스 간 통신
    • 모듈화 정도가 높음 = 모듈이 세분화 되어있음
    • 커널 내부 지연이 적고, 예측이 가능함 (→ 실시간 시스템에 활용)
    • 단점 → 모듈간 통신이 빈번하여 성능 저하

가상머신

  • 운영체제와 응용 프로그램 사이에서 작동하는 프로그램
  • 가상머신이 있으면 응용프로그램이 모든 환경에서 동일하게 작동함
  • 자바 가상머신(JVM) : 자바 프로그램이 돌아갈 환경. 종속적임
  • 서버 가상화 : 하나의 서버에 가상 서버를 여러개 구성
반응형

'dev-log > cs' 카테고리의 다른 글

[운영체제] 버스 (bus)  (0) 2023.09.27
[운영체제] 현재의 운영체제들  (0) 2023.09.27
[운영체제] 운영체제의 역사  (0) 2023.09.27
gitignore not working  (0) 2021.05.21
git pull error  (0) 2021.05.10
Comments