IT/OS

[OS] Operating System

wakelight23 2025. 1. 27. 20:58

Operating System, 운영체제

● Operating : 운영중인 + System : 체계 =  운영체제

 

● 컴퓨터의 기동과 함께 커널(Kernel)이 주기억 장치에 올려져 컴퓨터를 작동시키고 운영을 관리하여

   응용 프로그램이 효율적으로 실행될 수 있는 환경을 제공하는 기본 소프트웨어

 

● 운영체제는 왜 있어야 할까?

  - 운영체제의 주 목적은 컴퓨터의 하드웨어를 관리하는 것.

  - 컴퓨터를 효율적으로 사용하기 위해 필요하다.

  - 운영체제의 성능 = 컴퓨터의 성능

  - 사용자의 편의를 제공하기 위해 존재한다.

     └ 만약, 운영체제가 없다면 지금 사용하는 컴퓨터가 있을 수 있었을까?

 

즉, 운영체제는 컴퓨터의 성능(Performance)를 높이고 사용자에게 편의성(Convenience)를 제공하는
컴퓨터 하드웨어 관리 프로그램이다.

 

Booting, 부팅

기본 구조

● Processor = CPU, Main Memory = RAM, ROM

  ○ ROM : 비휘발성, 메모리에서 극히 일부 차지

    - HDD, SSD처럼 비휘발성으로 전원이 꺼져도 안의 내용이 계속해서 유지

       └ ex) 문서 작업 후, 저장을 한 후 PC를 껐다 켜도 문서 파일이 사라지지 않음

 

  ○ RAM : 휘발성, 메모리의 대부분을 차지하며 실제 프로그램이 할당되는 곳

    - 휘발성이기에 전원이 꺼지면 메모리안의 모든 내용이 지워짐

       └ ex) PC를 껐다 키면 바탕화면이 그 전에 작업하던 내용이 없어지는 것

 

● Booting이 되는 과정

Booting!


  1) 컴퓨터 전원이 켜지면 CPU에서 ROM에 있는 내용 Read

  2) ROM 안에는 POST(Power-On Self-Test), 부트 로더(Boot Loader)가 저장되어 있음.
     POST : 전원이 켜지면 가장 처음 실행되는 프로그램으로 현재 컴퓨터의 상태 검사

  3) POST 다음은 Boot Loader 실행

      Boot Loader : HDD, SSD에 저장되어 있는 운영체제를 찾아서 RAM에 가지고 온다.

 

운영체제 구성

OS가 향하는 곳

● 커널(Kernel)

  - 운영체제의 핵심이며 운영체제가 수행하는 모든 것이 저장

 

● 명령어 해석기(Command Interpreter, Shell)

  - 운영체제(커널)에 요청하는 명령어를 해석 후 커널에 요청하고 그 결과를 출력

  - CLI(Command Line Interface), GUI(Graphical User Interface)를 제공하며
    사용자가 명령어로르 입력하면 커널에 전달

 

● 운영체제는 어디에 위치할까?

Kernel 과 Shell 사이에 위치한다

 

운영체제가 하는 일(기능)

● 프로세스 관리

  - 실행 중인 프로그램(프로세스)의 생성과 제거

  - 스케줄링, 동기화, 통신을 담당

 

● 메모리 관리

  - 메모리 공간을 프로세스에 할당하고 회수 및 사용 중인 메모리를 추적

  - 가상 메모리(Virtual Memory) 기술을 통해 물리적 메모리의 한계를 효율적으로 사용

 

● 파일 시스템 관리

  - 데이터 논리적 단위(File)로 추상화하여 저장, 검색, 수정 및 삭제를 지원

  - 디렉토리 구조와 접근 권한 관리를 통해 데이터 보호를 제공

    └ 폴더를 '생성', '저장', '삭제'하는 것들
        → WindowOS에서 폴더에 파일을 저장하고 폴더 안에 폴더를 만드는 것

 

● 입출력 장치 관리

  - 키보드, 마우스, 프린터 등 다양한 장치의 드라이버를 통해 하드웨어와 통신

    └ 처음 WindowOS를 설치하고 USB를 연결했을 때 일어나는 과정들

  - 버퍼링(Buffering), 캐싱(Caching), 스풀링(Spooling) 등의 기술로 입출력 성능 최적화

     ○ 버퍼링(Buffering) : 데이터를 임시로 저장하는 메모리 공간

     ○ 캐싱(Caching) : 자주 사용되는 데이터를 고속 메모리(Cache)에 저장하여 접근시간을 단축하는 기술

     ○ 스풀링(Spooling) : 입출력 데이터를 임시로 저장소에 저장하여 CPU와 입출력 장치가
                                        독립적으로 작업할 수 있도록 하는 기술

 

● 저장장치 관리

  - 디스크 공간 할당 및 회수, 데이터의 효율적 배치를 관리

 

● 보안 및 보호

  - 시스템 자원을 보호하고 사용자 데이터의 무결성과 기밀성을 유지

  - 접근 제어 및 암호화를 통해 불법적인 접근을 방지

    └ 기본적인 보안 장치(방어벽, Firewall) 등으로 외부 접근 방지