공부 기록/운영체제

컴퓨터 시스템과 운영체제 (2)

도도히히 2025. 11. 9. 16:03

2.  컴퓨터 시스템과 운영체제

컴퓨터 시스템 계층 구조

 

컴퓨터 시스템 계층

  • 사용자
  • 응용프로그램
  • 운영체제
    • 커널 코드
      • 운영체제 핵심 부분
      • 시스템 자원 관리
      • 응용프로그램이 하드웨어 자원을 효율적으로 사용할 수 있도록 돕는 코드
    • 디바이스 드라이버
      • 하드웨어와 소프트웨어를 연결하는 인터페이스
      • 운영체제가 다양한 하드웨어 장치를 제어할 수 있도록 해줌
  • 하드웨어

 

컴퓨터 시스템이 계층 구조로 설계된 이유

 

계층간 독립성 확보를 위해 (칸막이)

  • 사용자
    • 운영체제나 하드웨어에 대해 몰라도 응용프로그램으로 컴퓨터 활용
  • 응용프로그램
    • 컴퓨터 하드웨어의 타입이나 구조, 제어 방법을 몰라도 개발 가능
    • 운영체제에게 요청하여 해결 (운영체제가 하드웨어를 완벽히 독점 장악, 하드웨어 사용 충돌 방지)
      • 운영체제가 없다면 하드웨어를 사용하는 여러 응용프로그램이 충돌할 수 O
    • 컴퓨터 하드웨어가 바뀌어도 응용프로그램을 다시 작성할 필요 X
  • 운영체제
    • 장치와 관련된 모든 작업을 디바이스 드라이버에게 요청
    • 응용프로그램과 하드웨어 사이의 인터페이스

 

운영체제의 전체 기능

  • 프로세스와 스레드 관리
    • 프로그램이 메모리에 적재되어 실행될 때 프로세스라고 함
    • 프로세스는 한 개 이상의 스레드(프로세스 내부의 일꾼)로 구성
    • 스레드: 운영체제에 의해 스케줄되고 다루어지는 실행 단위
    • 프로세스/스레드의 실행, 일시 중단, 종료, 스케줄링, 컨텍스트 스위칭, 동기화
  • 메모리 관리
    • 프로세스나 스레드에게 메모리 할당, 메모리 변환, 다른 프로세스/스레드로부터의 메모리 보호
    • 메모리를 하드 디스크의 영역까지 확장하는 가상 메모리 기술
  • 파일 관리 혹은 파일 시스템 관리
    • 파일 생성, 저장, 읽기, 복사, 삭제, 이동, 파일 보호
  • 장치 관리
    • 키보드, 마우스, 프린터 등 입출력 장치
    • 하드 디스크 등 저장 장치 제어
  • 사용자 인터페이스
    • 라인 기반 명령 입출력 창이나 GUI 인터페이스 제공
  • 네트워킹
    • 네트워크 인지, 연결, 닫기, 데이터 송수신
  • 보호 및 보안
    • 바이러스나 웜, 멀웨어, 해킹 등의 외부 공격이나 무단 침입으로부터 보호

 

운영체제 구성

운영체제 = 커널 + 디바이스 드라이버 + 도구 프로그램

  • 커널
    • 운영체제의 핵심 기능들을 구현
    • 컴퓨터 자원을 제어하고 관리하는 코드와 자료 구조들
    • 좁은 의미의 운영체제
    • 응용프로그램이 커널 기능을 이용하려면 시스템 호출 사용
  • 디바이스 드라이버
    • 장치를 직접 제어하고 입출력하는 소프트웨어
    • 장치마다 전담 디바이스 드라이버 있음
    • 키보드 드라이버, 마우스 드라이버, usb 드라이버 등
    • 일반적으로 장치 제작자에 의해 작성되어 배포됨
  • 도구 프로그램
    • 사용자가 컴퓨터를 편리하게 사용할 수 있도록 제공
    • Windows 탐색기, 작업관리자, 제어판 등

 

운영체제 커널 인터페이스: 시스템 호출과 인터럽트

 

시스템 호출

  • 커널응용프로그램 사이의 인터페이스
  • 응용프로그램에서 커널 기능을 사용할 수 있는 유일한 방법
  • 시스템 호출 라이브러리를 통해 다양한 시스템 호출 함수 제공
    • 시스템 호출 라이브러리는 운영체제 패키지에 포함됨
    • 파일 읽기, 메모리 할당, 프로세스 정보 보기, 프로세스 생성 등

cf. 표준 라이브러리란?

  • 응용프로그램을 쉽게 작성할 수 있도록 복잡한 기능을 미리 작성해 놓은 코드

인터럽트

  • 커널하드웨어 장치 사이의 인터페이스
  • 장치들의 입출력 완료, 타이머 완료 등을 CPU에게 알리는 하드웨어적 방법
    • 인터럽트를 알리는 하드웨어 신호가 직접 CPU에 전달
  • 인터럽트 발생하면
    • CPU는 하는 일을 중단하고 인터럽트 서비스 루틴 실행
    • 인터럽트 서비스 루틴은 대부분 디바이스 드라이버 내에 있음
    • 인터럽트 서비스 루틴은 커널 영역에 적재
    • 인터럽트 서비스 루틴의 실행을 마치면 하던 작업 계속
  • 인터럽트 활용
    • 운영체제가 장치에게 지시한 입출력 작업의 완료, 예고 없는 네트워크 데이터의 도착, 키보드나 마우스의 입력, 부족한 배터리 경고 등 장치와 관련된 모든 이벤트 처리

Monolithic kernel

  • 성능 면에서 효율적일 수 있지만, 특정 디바이스 드라이버에서 발생한 오류가 시스템 전체의 불안정으로 이어질 위험 O

Microkernels

  • 프로세스 사이의 통신, 가상 메모리 관리, 스케줄링 등 핵심 기능만 커널 영역에서 실행
  • 디바이스 드라이버 및 나머지 기능들은 모듈화하여 사용자 영역에서 실행

시스템 안정성 유지, 각 기능 모듈화 → 전체 시스템에 미치는 영향 최소화, but 성능 면에서 복잡

결함 격리

'공부 기록 > 운영체제' 카테고리의 다른 글

컴퓨터 시스템과 운영체제 (3)  (0) 2025.11.09
컴퓨터 시스템과 운영체제  (0) 2025.11.09