본문 바로가기

⚙️ Computer Science/명품 운영체제

Operating System - 컴퓨터 시스템 계층 구조, 운영체제, 운영체제의 역할, 운영체제와의 관계, 운영체제의 필요성, 운영체제의 기능

멀티 코어 CPU
  • CPU 내부에 2개의 프로세서가 포함되어 있음
  • 2개의 프로그램을 동시에 실행
  • 병목 현상이 발생해서 속도가 저하된다. 

 

컴퓨터 시스템 계층 구조

 

사용자
응용 프로그램 (한글, Chrome, VSCode, 카카오톡 등)
운영체제 (운영체제 커널 코드, 디바이스 드라이버)
컴퓨터 하드웨어

 

위의 표처럼 컴퓨터 시스템은 계층 구조로 설계되어 있다. 운영체제는 응용프로그램과 하드웨어 사이의 인터페이스이다. 

그렇다면, 컴퓨터 시스템이 계층 구조로 설계된 이유는 무엇일까?

계층 간의 독립성 확보를 위해서 이다. 

 

  • 사용자 
    • 운영체제나 하드웨어에 대해 몰라도 응용프로그램으로 컴퓨터를 사용할 수 있다. 
  • 응용프로그램 
    • 컴퓨터 하드웨어의 타입이나 구조, 제어 방법을 몰라도 개발이 가능하다.
      • ex) CPU의 크기, 메모리 크기가 얼마인지 모르고 프로그램을 작성함
      • 저장 장치가 하드디스크인지 SSD인지, 디스크 헤드는 몇 개 있는지 몰라도 파일 입출력 프로그램을 작성할 수 있음
      • 즉, 기능만으로 접근이 가능하다. 
    • 운영체제에게 요청하여 해결한다.
    • 컴퓨터 하드웨어가 바뀌어도 응용프로그램을 다시 작성할 필요가 없다.
  • 운영체제 
    • 운영체제는 장치 관련된 모든 작업을 디바이스 드라이버에게 요청함
    • 응용프로그램과 하드웨어 사이의 인터페이스이다. 

 

 

운영체제가 필요한 이유

만약 운영체제가 없다면, 응용프로그램이나 사용자가 직접 하드웨어를 제어해야 한다. 직접 제어하려면 하드웨어에 대한 지식이 필요하고 충돌, 관리, 보안의 문제가 발생할 것이다. 

 

다양한 경우에서 운영체제의 필요성을 알아보자.

가현이와 영인이가 동시에 프로그램을 실행시키고자 할 때, 이미 어떤 프로그램이 실행되고 있는 상황에서 영인이가 프로그램을 실행시키고자 하면, 2개의 응용프로그램에 대한 스케줄링은 누가 할까? 
프로세스 관리

 

영인이가 검색을 하기 위해 키보드에 키를 입력하려고 한다. 키가 입력되면 실행 중인 여러 응용프로그램 중 어떤 응용프로그램에게 키를 전달해야 할 지 누가 결정할까?
입출력 관리

 

가현이와 영인이가 수업 전 시간이 부족해 동시에 프린터기에 프린팅을 시켰다. 프린터기 장치 사용에 대해 충돌이 생기지 않게 하려면 누가 관리를 해야할까?
장치 관리

 

이 외에도 운영체제는 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리 등 자원에 대한 충돌을 해결하고 성능을 최적화하며, 사용자의 시스템 사용을 효율적으로 관리해준다. 

 

 

 

컴퓨터 시스템 계층 구조와 실생활의 연결

 

은행 직원이 없는 경우                                         은행 직원이 있는 경우 



은행 직원이 없는 경우

-> 비효율적이고 충돌로 인한 오류, 지연, 보안 취약, 무질서가 발생할 것이다. 

 

은행 직원이 있는 경우

고객 : 응용프로그램

직원 : 운영체제의 여러 기능들 (커널 함수들)

인쇄, 금고 : 하드웨어 

-> 효율적이고 충돌이 해소될 것이며 보안 강화, 질서가 유지될 것이다. 

 

 

 

운영체제와의 관계

운영체제 ↔️ 응용프로그램

  • 응용프로그램이 직접 하드웨어를 다루지 못하도록 차단 (응용프로그램들 사이의 하드웨어 사용 충돌을 막기 위함)
  • 응용프로그램이 하드웨어를 사용하고 싶을때 -> 반드시 운영체제에게 요청하여 운영체제가 대신하여 하드웨어 조작 (유일한 요청 방법 : 시스템 호출 system call)
  • 응용프로그램과 하드웨어 사이의 인터페이스
  • 응용프로그램들의 실행 순서 제어 
  • 응용프로그램들 사이의 통신 중계

 

운영체제 ↔️ 사용자

  • 사용자가 하드웨어에 관한 지식이 없어도 컴퓨터 다루기 쉽다. 
  • 사용자에게 컴퓨터 시스템을 사용할 편리한 인터페이스를 제공 (마우스, 음성 명령, UI 등)
  • 컴퓨터의 사용을 돕는 여러 도구 응용프로그램 제공
  • 사용자의 계정 관리
  • 사용자의 컴퓨터 사용 시간 계산, 과금 처리 등

 

운영체제 ↔️ 하드웨어

  • 하드웨어를 제어하는 것은 전적으로 운영체제의 몫이다. 
  • 마우스 클릭, 키보드 입력, 파일 읽고 쓰기, 디스플레이에 텍스트 이미지 출력

 

 

🌟  운영체제의 전체 기능

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