[CS] 운영 체제 및 컴퓨터 시스템 구조

Ryong·2024년 5월 24일

CS

목록 보기
1/16
post-thumbnail

1. 운영 체제 개요

운영 체제의 정의와 목적
운영 체제는 컴퓨터 하드웨어와 소프트웨어 자원을 관리하고, 사용자와 시스템 간의 인터페이스를 제공하는 소프트웨어이며 주요 목적은 다음과 같다.

  • 자원 관리: CPU, 메모리, 저장 장치, 입출력 장치 등 시스템 자원을 효율적으로 관리.
  • 프로세스 관리: 실행 중인 프로그램을 관리하고 스케줄링을 통해 CPU 시간을 할당.
  • 메모리 관리: 주기억 장치(RAM)를 관리하여 프로그램들이 필요한 메모리를 사용할 수 있도록 한다.
  • 파일 시스템 관리: 파일과 디렉터리를 관리하고, 데이터 저장 및 검색을 용이하게 한다.
  • 보안 및 보호: 시스템과 데이터를 보호하며, 사용자와 프로세스의 권한을 관리한다.
  • 사용자 인터페이스 제공: 사용자와 시스템 간의 인터페이스를 제공한다. (CLI, GUI 등)

운영 체제의 역사
운영 체제는 컴퓨터 발전과 함께 진화해왔다.

  • 1세대 (1940년대 - 1950년대): 초기 컴퓨터는 운영 체제가 없었다. 사용자가 기계어로 직접 프로그램을 작성하고 실행했다.
  • 2세대 (1950년대 - 1960년대): 일괄 처리 시스템(batch processing)이 등장. 프로그램을 카드나 테이프에 기록하여 일괄적으로 처리.
  • 3세대 (1960년대 - 1970년대): 다중 프로그래밍(multitasking)과 시분할 시스템(time-sharing)이 도입. 여러 프로그램이 동시에 실행될 수 있었다.
  • 4세대 (1980년대 - 현재): 개인용 컴퓨터(PC)와 네트워크 운영 체제의 발전. UNIX, Linux, Windows 등이 대표적인 예.

운영 체제의 유형

  • 단일 사용자 운영 체제: 한 번에 한 명의 사용자만 사용할 수 있는 운영 체제.
    예: MS-DOS.
  • 다중 사용자 운영 체제: 여러 사용자가 동시에 시스템 자원을 공유하는 운영 체제.
    예: UNIX, Linux.
  • 실시간 운영 체제(RTOS): 실시간 응답이 중요한 시스템에서 사용되는 운영 체제.
    예: VxWorks, QNX.
  • 임베디드 운영 체제: 특정 목적을 위해 하드웨어에 내장된 운영 체제.
    예: IoT 기기, 가전제품의 운영 체제.
  • 분산 운영 체제: 여러 컴퓨터가 네트워크를 통해 협력하여 작업을 수행하는 운영 체제.
    예: Google File System, Hadoop.

운영 체제의 주요 기능

  • 프로세스 관리: 프로세스 생성, 종료, 스케줄링, 동기화, 통신 등을 관리.
  • 메모리 관리: 메모리 할당, 해제, 가상 메모리 관리 등을 수행.
  • 파일 시스템 관리: 파일의 생성, 삭제, 읽기, 쓰기, 권한 관리 등을 처리.
  • 입출력 시스템 관리: 디스크, 프린터, 네트워크 등 입출력 장치를 관리.
  • 보안과 보호: 시스템 자원과 데이터의 무결성을 보호하고 접근 권한을 제어.
  • 사용자 인터페이스 제공: 명령어 인터프리터, GUI 등 사용자와 시스템 간의 상호작용을 제공.

2. 컴퓨터 시스템 구조

하드웨어 구성 요소

  • CPU (Central Processing Unit): 컴퓨터의 두뇌로, 명령어를 해석하고 실행. 연산 장치(ALU), 제어 장치, 레지스터로 구성.
  • 메모리: 데이터를 저장하고 접근하는 장치. 주기억 장치(RAM)와 보조기억 장치(HDD, SSD)로 나뉜다.
    • RAM (Random Access Memory): 임시 데이터 저장소로, 시스템이 실행 중일 때 데이터를 저장. 전원이 꺼지면 데이터가 사라진다.
    • ROM (Read-Only Memory): 부팅 시 필요한 펌웨어 등을 저장. 전원이 꺼져도 데이터가 유지.
  • I/O 장치 (Input/Output Devices): 사용자와 컴퓨터 간의 데이터 입력 및 출력을 담당.
    예: 키보드, 마우스, 모니터, 프린터 등.
  • 버스 (Bus): 데이터와 신호를 전달하는 통로. 시스템 버스, 데이터 버스, 주소 버스 등이 있다.

운영 체제와 하드웨어의 상호작용

  • 시스템 콜: 사용자 프로그램이 운영 체제의 서비스를 요청하는 인터페이스.
    예: 파일 읽기/쓰기, 프로세스 생성/종료.
  • 인터럽트: 하드웨어나 소프트웨어 이벤트가 발생했을 때 CPU의 실행을 중단하고 해당 이벤트를 처리하도록 하는 메커니즘.
    예: 키보드 입력, 타이머 알람.

시스템 콜과 인터럽트

  • 시스템 콜: 프로그램이 운영 체제의 기능을 사용하기 위해 호출하는 함수. 사용자 모드에서 커널 모드로 전환하여 운영 체제의 자원에 접근.
    • 예시:
      • open(): 파일을 열기 위한 시스템 콜.
      • read(): 파일에서 데이터를 읽기 위한 시스템 콜.
      • write(): 파일에 데이터를 쓰기 위한 시스템 콜.
      • fork(): 새로운 프로세스를 생성하기 위한 시스템 콜.
  • 인터럽트: 하드웨어 또는 소프트웨어에서 발생하는 예외 상황을 처리하기 위해 CPU의 현재 작업을 중단하고, 인터럽트 서비스 루틴(ISR)을 실행하는 메커니즘.
    • 하드웨어 인터럽트: 키보드 입력, 마우스 클릭, 디스크 I/O 완료 등.
    • 소프트웨어 인터럽트: 프로그램 오류, 시스템 콜 등.

입출력 시스템 (I/O Systems)

  • 입출력 하드웨어: 입출력 장치는 데이터의 입력과 출력을 담당.
    예: 디스크 드라이브, 네트워크 어댑터, 그래픽 카드.
  • 입출력 소프트웨어: 장치 드라이버와 같은 소프트웨어가 하드웨어와 운영 체제 간의 인터페이스를 제공.
  • 디바이스 드라이버: 특정 하드웨어 장치를 제어하는 소프트웨어. 운영 체제는 디바이스 드라이버를 통해 하드웨어와 상호작용.
  • 입출력 인터페이스: 운영 체제는 표준 인터페이스를 통해 다양한 입출력 장치와 통신.

추가

  • 멀티프로세싱과 멀티코어 시스템: 다중 CPU 및 코어를 사용하는 시스템에서의 운영 체제 역할과 효율적인 자원 분배 방법.
  • 분산 시스템: 분산 컴퓨팅 환경에서의 운영 체제 역할, 클러스터링, 분산 파일 시스템 등.
  • 가상화: 하이퍼바이저와 가상 머신, 컨테이너 기술 (Docker, Kubernetes 등).
  • 클라우드 컴퓨팅: 클라우드 기반 운영 체제와 자원 관리, 가상화 기술과의 연관성.
profile
새로운 시작. 그리고 도약

0개의 댓글