운영체제와 컴퓨터

이태곤·2023년 5월 15일
0

Operating System

목록 보기
1/13
post-thumbnail

1. 운영체제

  • 응용 프로그램과 하드웨어 간의 인터페이스 역할을 담당

  • 종류

    • GUI(Graphic User Interface): 그래픽을 사용하여 컴퓨터와 상호작용하는 인터페이스로 windowOS, macOS 등이 있다.
    • CUI(Character User Interface): 키보드만 사용하여 문자 기반으로 컴퓨터와 상호작용하는 인터페이스로 MS-DOS가 대표적이다.
  • 운영체제 VS 펌웨어

    • 펌웨어
      • 장치가 공장에서 제조될 때 ROM이라 불리는 비휘발성 메모리에 기록된다.
      • 일반적으로 제조 과정 중에 디바이스에 포함되며, 일반 사용자가 자유롭게 프로그램을 설치하거나 업데이트할 수 없다.
      • 업데이트가 필요한 경우, ROM에 있는 현재 펌웨어를 제거하고 새로운 펌웨어로 덮어쓰는 방식으로 이루어진다.
        → 키보드, 세탁기 안에 있는 소프트웨어
    • 운영체제
      • 컴퓨터의 휘발성 RAM (Random Access Memory) 및 비휘발성 ROM, 캐시 메모리 등 다양한 메모리를 계층화하여 사용한다.
      • 사용자는 자유롭게 응용 프로그램을 설치하거나 실행할 수 있으며, 운영체제 및 응용 프로그램을 업데이트할 수 있다.
        → MacOS, WindowOS

2. 운영체제의 역할

  1. CPU 스케쥴링과 프로세스 관리: CPU 소유권을 어떤 프로세스에게 할당할지 결정하며 프로세스의 생성, 삭제, 자원 할당 및 반환 관리한다.

  2. 메모리 관리: 한정된 메모리를 어떤 프로세스에게 얼만큼 할당할지 결정한다.

  3. 디스크 파일 관리: 디스크 파일의 프로그램들을 어떠한 방법으로 보관할지 결정한다.

  4. I/O 디바이스 관리: 입출력 디바이스인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리한다.

  5. 자원 보호: 사용자가 하드웨어에 직접적으로 접근하는 것을 제한함으로써 자원을 보호하며 정해진 방법으로만 컴퓨터 자원을 사용한다.


3. 운영체제의 구조

  1. 응용 프로그램: 유저 프로그램으로 최상단에 위치

  2. 인터페이스: 사용자 명령 전달 및 실행 결과를 사용자에게 알려주는 역할
    → GUI, CUI

  3. 시스템콜: 운영체제가 커널에 접근하기 위한 인터페이스로 커널 함수를 호출할 때 사용된다.

    • 추상화 계층으로 낮은 단계의 영역 처리에 대한 부분을 신경쓰지 않고 프로그램을 구현할 수 있다는 장점이 있다.
    • 컴퓨터 자원에 접근하기 위해서는 시스템콜을 사용해야 함으로써, 사용자나 다른 프로그램들이 직접 컴퓨터 자원에 접근하는 것을 방지한다.
      • 운영체제의 관리하에 프로그램이 운영되므로 사용자 부주의로 인해 컴퓨터 시스템 자체를 파괴할 수 있는 위험을 막을 수 있다.
        → 시스템의 안정성↑, 보안↑
      • printf(), write(), readFile() 등
      • 유저모드가 시스템콜을 통해 커널모드로 변환되서 실행되는 과정
        → 유저 모드 fs.readFile()함수 호출 → 트랩 발동 후 올바른 요청인지 확인 → modebit을 0으로 변경 → 커널 모드에서 커널 함수를 통해 요청 실행 후 유저 프로그램으로 반환
      • modebit: 1 or 0 값을 가지는 플래그 변수
        → 0: 커널 모드로 모든 컴퓨터 자원에 대해서 접근할 수 있다.
        → 1: 유저 모드 유저가 접근할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 대해서 함부로 접근할 수 없다.
  4. 커널: System Call 인터페이스를 제공하여 응용프로그램과 하드웨어 간의 상호 작용을 중개한다.

    • 메모리 관리: 프로세스가 메모리에 할당 및 해제 / 가상 메모리 / 페이지 교체 등의 역할 수행
    • 프로세스 관리: 프로세스의 생성, 종료, 스케쥴링 등을 담당
    • 파일 시스템: 데이터의 저장, 검색, 백업 및 공유를 담당 & 제어
    • I/O 디바이스: 입출력(I/O) 디바이스와 상호 작용
    • I/O 요청 관리: 디바이스 드라이버와 상호작용하며, I/O 요청을 관리
  5. 드라이버: 하드웨어의 저수준 세부 정보를 추상화하여 응용 프로그램에게 제공한다.
    이를 통해 응용프로그램을 통해 하드웨어를 직접 관리하고 제어할 수 있다.

0개의 댓글