OS란 무엇일까!

Date:     Updated:

Categories:

Tags: ,

운영체제(OS)는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어!
일반적으로 컴퓨터를 사용하면서 실행한 모든 프로그램들은 OS단에서 관리하고 제어를 하게 된다.
Windows, Linux, Mac OS 등이 있다.

운영체제의 목적

  1. 컴퓨터의 하드웨어를 관리하는 것
    • 컴퓨터에는 수 많은 하드웨어가 존재한다. CPU나 메모리, 디스크, 키보드, 마우스, 모니터 등이 있는데 이를 관리하여 컴퓨터를 효율적으로 사용한다.
  2. 사용자에게 편의를 제공하는 목적
    • 운영체제가 없다면 위 1번과 같이 하드웨어를 사용자가 직접 전부 관리해야하여 불편함을 겪을 것이다. 대표적으로 스마트폰이 남녀노소 빠르게 사용법을 익힌다는 점에서 운영체제가 많이 발전했음을 알 수 있다.

결론적으로, 운영체제는 컴퓨터의 성능을 높이며, 편의성 제공을 목적으로 하는 컴퓨터 하드웨어 관리 프로그램이다.

부팅

Main memory에는 보통 ROM과 RAM으로 나누어 져 있다.

  • ROM : 비휘발성으로 극히 일부를 차지함.
  • RAM : 휘발성으로 메모리의 대부분을 차지함. 실 프로그램이 할당되는 곳.

ROM은 비휘발성으로 전원이 꺼져도 그 안의 내용이 유지되기 때문에, 컴퓨터 전원 부팅 시 Processor(CPU)에서 ROM의 내용을 읽게 된다.
ROM 안에 있는 두 가지

  • POST(Power On Self Test)
    • 전원이 켜지면 가장 처음에 실행되는 프로그램으로 현재 컴퓨터의 상태를 검사.
  • 부트 로더(boot loader)
    • HDD에 저장되어 있는 운영체제를 찾아서 메인 메모리의 RAM에 가져온다. 이 부트로더의 과정을 부팅 이라고 한다.

결국 OS를 RAM에 가져오는 과정을 부팅 이라고 하는데, 부팅이 되었다 라는 것은 운영체제가 수행할 준비를 마쳤다고 하는 것이다.

이후 운영체제는 크게 커널명령어 해석기로 나뉜다.

  • 커널 : 운영체제의 핵심으로 운영체제가 수행하는 모든 것이 저장되어있다.
  • 명령어 해석기 : 사용자가 커널에 요청하는 명령어를 해석하여 커널에 요청하고 그 결과를 출력하는 것.

운영체제의 위치

사용자의 프로그램은 특정 운영체제에 맞춰서 만든다. 그러므로 서로 다른 운영체제를 위한 프로그램은 서로 다른 운영체제에서 실행이 될 수 없다.

애플리케이션은 결국 운영체제에 종속적이라는 뜻이며 운영체제는 하드웨어를 관리하고, 그 관리된 자원을 애플리케이션에 할당한다는 것을 알 수 있다.

따라서 운영체제는 정부(goverment)와 유사하다.

  • 국토나 인력, 예산과 같은 자원이 존재하며 이를 효율적으로 사용한다
    • 프로세스, 메모리, 하드디스크 등 자원을 효율적으로 사용한다.
  • 효율적인 자원 관리를 위해 행정부, 국토부, 교육부, 국방부 등 부서로 관리를 하게 된다.
    • 자원 관리의 용이성을 위해서 프로세스 관리, 메모리 관리, 디스크 관리, 네트워크, 보안 등 기능이 나뉘어 져있음.
  • 부서는 국민들에게 자원을 요청받고 배분해준다.
    • 애플리케이션의 요청에 따라서 기능들이 수행하여 적절히 자원을 배분함.

운영체제의 역할

  1. 프로세스 관리
    • 운영체제에서 작동하는 응용 프로그램을 관리한다. 현재 CPU를 점유해야 할 프로세스를 정책에 의하여 결정하고 실제로 할당도 하며 이 프로세스와 다른 프로세스 간 공유자원 접근 제한과 통신 등을 직접적으로 관리한다.
  2. 저장장치 관리
    • Main memory와 Hdd 등을 관리한다.
      • 1차 저장장치 (Main memory)
        • 프로세스에 할당하는 메모리 영역의 할당과 해제를 담당
        • 각 메모리 영역간의 침범을 방지해줌
        • 메인 메모리의 효율을 위한 가상 메모리를 기능해줌
      • 2차 저장장치 (Hdd)
        • 파일 시스템으로 데이터를 저장한다.
        • 파일 시스템은 OS에서 관리한다.
        • ext, ntfs, fat 등 많은 파일시스템이 있다.
  3. 네트워킹
    • TCP/IP 기반의 인터넷에 연결하거나 응용 프로그램이 네트워크를 사용하려면 운영체제에서 네트워크를 지원하여야 한다. 이처럼 사용자와 하드웨어 사이에서 적절히 네트워킹을 수행한다. 자세한 사항은 네트워크에서 알아보자.
  4. 사용자 관리
    • 1pc 여러사용자를 사용하는 경우에 사용자 계정을 관리하여준다. 이를 위해선 각 계정마다 격리된 개인 파일폴더와 파일들이 존재하여야 하고, 접근권한도 지정할 수 있어야 한다.
  5. 디바이스 드라이버
    • 여러 자원과 하드웨어를 관리하는 운영체제로서는 이 여러 하드웨어를 운영체제에서 인식하고 관리하게 만들어주어야 응용프로그램이 하드웨어를 간접접근을 할 수 있게 된다. 따라서 운영체제 안에 하드웨어를 추상화 해주는 계층이 필요하다. 이 계층이 바로 디바이스 드라이버 이다. 이 많은 디바이스 드라이버를 관리하는 것도 운영체제가 한다.

Leave a comment