[OS] 운영체제, Operating System

nnnyeong·2022년 8월 15일
0

OperatingSystem

목록 보기
6/11

운영체제란

시스템의 자원과 동작을 관리하는 소프트웨어

하드웨어를 관리하고 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 동작을 제어하는 시스템 소프트웨어

목적

CPU, 메모리, 디스크 등의 컴퓨터 하드웨어를 효율적으로 관리하는 것

즉, 운영체제란 컴퓨터의 성능을 높이고 (performance) 사용자에게 편의 제공 (convenience) 을 목적으로 하는 컴퓨터 하드웨어 관리 프로그램이다.




운영체제가 실행되는 과정

  • 컴퓨터의 전원이 켜지면 CPU 에서 ROM 의 내용을 읽어옴
    • ROM 에서 읽어오는 내용 : 전원이 켜지면 가장 처음 실행되는 프로그램, POST (Power On Self Test)
  • POST 작업이 끝나면 Boot Loader 가 실행됨
    • Boot Loader : 하드디스크에 저장되어 있는 OS 를 찾아서 RAM 에 올림
  • OS 가 RAM 메모리에 올라가면 OS 를 실행할 준비를 마친 것, 이러한 과정을 '부팅' 이라 함
  • 운영체제가 종료되는 시점은 전원이 꺼질 때



운영체제의 구조

운영체제는 크게 커널 (kernel) 과 쉘 (명령어 해석기, Command Interpreter, Shell) 로 나뉜다.

  • 사용자가 명령어를 입력하면
  • 쉘은 해당 명령어를 해석하고 커널에 전달한 뒤
  • 커널에서 해당 명령을 수행한 뒤 결과를 다시 쉘에 전달
  • 쉘은 전달받은 결과를 해석해서
  • 사용자가 명령어 입력 결과를 확인할 수 있도록 한다.

커널 (kernel)

  • OS 의 가장 주요한 부분, 메모리 위에 올라가 상주함
  • 운영체제가 수행하는 모든 것이 담겨 있음

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

  • 사용자가 커널에 요청하는 명령어를 해석해 커널에 전달하고 그 결과를 출력함



운영체제의 위치

  • 사용자 프로그램 (Application)은 운영체제 위에서 수행된다.
  • 즉, 사용자 프로그램 (Application)은 운영체제가 제공하는 자원만을 사용할 수 있다.
  • 사용자 프로그램 (Application)은 특정 운영체제에 맞춰서 만들어진다.



운영체제가 하는 일

프로세스 관리

운영체제에서 작동하는 응용 프로그램을 관리한다. 현재 CPU를 점유해야 할 프로세스를 결정하고, 실제로 CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신 등을 관리하게 된다.

  • 프로세스, 스레드
  • 스케줄링
  • 동기화
  • IPC 통신


저장 장치 관리

1차 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크, NAND 등을 관리한다.

  • 1차 저장장치(Main Memory)
    • 프로세스에 할당하는 메모리 영역의 할당과 해제
    • 각 메모리 영역 간의 침범 방지
    • 메인 메모리의 효율적 활용을 위한 가상 메모리 기능

가상 메모리 : 물리 메모리의 한계를 극복하기 위해 나온 기술 (실제 메모리를 말하는 것이 아님!), 필요한 부분만 메모리에 부분적으로 적재 시킴

  • 2차 저장장치(HDD, NAND Flash Memory 등)
    • 파일 형식의 데이터 저장
    • 이런 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리

HDD : Hard Disk Drive
NAND flash memory : ROM (Read Only Memory) 에 속함, 비휘발성 메모리



네트워킹

TCP/IP 기반의 인터넷에 연결하거나, 응용 프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야 한다. 현재 상용 OS들은 다양하고 많은 네트워크 프로토콜을 지원한다.



사용자 관리

운영체제는 사용자 별로 프라이버시와 보안을 위해 개인 파일에 대해선 다른 사용자가 접근할 수 없도록 해야 한다. 이 밖에도 파일이나 시스템 자원에 접근 권한을 지정할 수 있도록 지원한다.



디바이스 드라이버

디바이스 드라이버 : 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램

운영체제는 시스템의 자원, 하드웨어를 관리한다. 시스템에는 여러 하드웨어가 붙어있는데, 이들을 운영체제에서 인식하고 관리하게 만들어 응용 프로그램이 하드웨어를 사용할 수 있게 만들어야 한다.

따라서, 운영체제 안에 하드웨어를 추상화 해주는 계층이 필요하다. 이 계층이 바로 디바이스 드라이버라고 불린다. 하드웨어의 종류가 많은 만큼, 운영체제 내부의 디바이스 드라이버도 많이 존재한다.

이러한 수많은 디바이스 드라이버들을 관리하는 기능 또한 운영체제가 맡고 있다.





Reference

운영 체제란 무엇인가?

profile
주니어 개발자까지 ☄️☄️

0개의 댓글