컴퓨터공학/운영체제

[컴퓨터공학/운영체제] 운영체제 기초 | CPU, 메모리, 파일 시스템 관리

코코무 2025. 3. 24. 13:36

운영체제란 무엇인가?

운영체제(Operating System, OS)는 하드웨어와 소프트웨어 사이에서 중재 역할을 하는 핵심 시스템 소프트웨어다.

사용자가 프로그램을 실행하거나 파일을 저장하는 것처럼 단순한 행동을 하더라도, 그 이면에서는 운영체제가 CPU, 메모리, 저장 장치 같은 자원을 알맞게 배분하고 관리하고 있다.

 

운영체제가 필요한 이유

  • CPU - 연산을 수행하는 두뇌
  • 메모리(RAM) - 프로그램과 데이터를 임시로 보관
  • 파일 시스템(디스크) - 영구 저장 공간

여러 프로그램이 동시 실행될 때, 이 자원들을 아무 통제 없이 쓰게 되면 충돌, 속도 저하, 보안 문제가 발생한다. 이 자원들을 효율적이고 안전하게 분배하는 역할을 운영체제가 수행한다.

 

운영체제의 주요 목적

  • 자원 관리(Resource Management)
    • CPU, 메모리, 디스크 등의 하드웨어 자원을 효율적으로 배분
  • 추상화(Abstractino)
    • 복잡한 하드웨어 기능을 단순한 인터페이스로 감싸서 제공
    • 예: "파일 열기" = 실제로는 수천 번의 디스크 연산
  • 보호 및 격리(Security & Isolation)
    • 프로그램 간 간섭 방지, 시스템 안정성 유지

CPU 관리 - 누가 언제 실행될지 결정한다

운영체는 CPU를 사용하는 작업 단위(Process)들을 관리한다. CPU는 한 번에 하나의 명령어만 실행할 수 있기 때문에, 여러 프로세스를 빠르게 교대로 실행해 마치 동시에 돌아가는 것처럼 만든다. 이 과정을 스케줄링(Scheduling)이라고 한다.

 

운영체제의 역할

  • 실행 중인 프로세스 간 컨텍스트 스위칭 수행
  • 우선순위, 응답 시간 등을 고려해 스케줄링 알고리즘 적용
  • CPU 자원을 공정하고 효율적으로 배분

*컨텍스트 스위칭: 하나의 CPU가 여러 프로그램을 빠르게 번갈아가며 실행하려면 "지금 하던 일을 잠시 저장하고, 다른 일을 이어서 해야 한다."

 

예시

  • 사용자가 앱 3개를 동시에 켜도 CPU는 순간순간 빠르게 교체하면서 처리한다.
  • 개발자는 CPU를 직접 통제할 수 없고, OS를 통해 요청할 뿐이다.

메모리 관리 - 누가 얼만큼, 어디를 쓸지 결정한다

RAM은 유한한 공간이다. 운영체제는 프로그램마다 필요한 메모리 공간을 적절히 할당하고, 서로 침범하지 않도록 격리한다.

 

운영체제의 역할

  • 가상 메모리(Virtual Memory)
    • 각 프로세스에 고유한 주소 공간을 제공해 충돌 방지
  • 페이징(Paging)
    • 실제 물리 메모리를 작은 단위로 쪼개어 관리
  • 메모리 보호
    • A라는 앱이 B의 메모리에 접근하지 못하도록 방지

예시: 프로그램이 변수 하나를 선언하면 실제 주소는 OS가 배정한다.

 

파일 시스템 관리 - 데이터를 어디에 어떻게 저장할지 책임진다

운영체제는 SSD/HDD에 데이터를 구조화된 방식으로 저장하고 검색할 수 있도록 돕는다. 파일 하나를 저장한다는 건, 사실 여러 블록에 나눠 저장하고, 메타데이터까지 함께 관리하는 복잡한 작업이다.

 

운영체제의 역할

  • 디스크의 데이터를 파일/디렉토리 구조로 추상화
  • 읽기/쓰기 요청 처리(I/O 관리)
  • 파일 권한, 소유자, 타임스탬프 등 메타데이터 관리
  • 버퍼링 / 캐싱으로 디스크 접근 최적화