o-ohi-code 님의 블로그

[CS] 운영체제(Operation System) 란? 본문

실무/cs

[CS] 운영체제(Operation System) 란?

o-ohi-code 2025. 4. 3. 21:35

운영체제(Operation System) 는 하드웨어 소프트웨어 사이에서 중간 다리 역할을 하는 프로그램이다.

📌 컴퓨터를 사람이 쉽게 다루게 도와주는 컴퓨터의 관리자 프로그램

 

운영체제의 주요 역할

  하드웨어 제어 : cpu, 메모리, 디스크, 입출력 장치 등 관리
  자원 할당 : 어떤 프로그램에 얼마나 CPU, 메모리 줄지 결정
  프로세스 관리 : 여러 프로그램이 동시에 돌아가도록 조정
  메모리 관리 : 각 프로그램이 쓰는 메모리를 안전하게 관리
  보안 & 권한 : 사용자/프로그램 접근 권한 제어
  파일 시스템 : 파일 저장, 읽기, 쓰기 처리

 

✅ 프로세스(Process) 

  실행 중인 프로그램 한 개를 말해, 

   ex) 크롬, 카카오톡, VSCode 가 각각 하나의 프로세스

 

   특징

  • 메모리 공간을 가짐 : 자기만의 메모리(코드, 데이터, 스택 등) 가짐
  • OS가 관리 : 각 프로세스는 OS가 실행 시켜줌
  • 독립적 : 다른 프로세스와는 메모리 공간 공유 X

✅ 스레드 (Thread) 

  하나의 프로세스 안에서 실제로 일을 하는 실행 단위

    ex) OS 입장에서 chrome.exe 하나가 실행 => 하나의 프로세스 생성

    크롬 프로세스 안에 몇 개의 스레드 자동으로 생김

  • UI 처리 스레드
  • 렌더링 스레드
  • 네트워크 요청 처리 스레드
  • 자바스크립트 실행용 스레드 등..

    ✔ 한 프로세스 안에 여러 스레드를 만들면 > 멀티태스킹 가능

    ✔ 스레드는 메모리(코드, 합)를 공유하므로 속도는 빠르지만 동기화가 중요

 

✅ 스케줄링 (Scheduling) 

  CPU가 동시에 여러 작업(프로세스/스레드)을 처리할 수 없으니,

  누구 먼저 실행시킬지 순서를 정하는 시스템

    ex) FCFS (선입선출) : 먼저 온 작업 먼저 처리

    RR (라운드 로빈) : 조금씩 돌아가며 번갈아 처리

 

    ✔ 개발자는 앱이 CPU 자원을 얼마나 차지하는지, 언제 돌아가는지 이해할 필요가 있다.

 

✅ 메모리 관리 (Memory Management)

  여러 프로그램이 메모리를 나눠 쓰게 하면서, 안전하게 할당하고 회수 하는 기능

  • 가상 메모리 : 실제 RAM 보다 큰 메모리 처럼 쓰게 해줌 (디스크 일부 사용)
  • 메모리 보호 : 다른 프로그램의 메모리 침범 방지
  • 할당/해제 : malloc(), new 같은 동작의 기반이 되는 메커니즘

  ✔ 메모리 누수, 과다 사용, GC 동작 원리 등은 이 개념을 기반으로 이해해야 한다.

 

✅ 동기화 (Synchronization)

  여러 스레드가 공유 자원(CPU, 메모리 등)을 동시에 건드리지 않게 제어하는 기술

    문제

      race condition : 동시에 접근해서 결과가 꼬임 (은행 이체 중 동시 출금)

      데드락 : 서로 자원을 기다리다가 아무도 진행 못함

    해결 방법

      Mutex : 한 번에 한 스레드만 접근 가능하도록 잠금

      Semaphore : 여러 개까지 접근 허용 (신호등 느낌)

      Monitor : 고수준 동기화 도구 (Java의 synchronized 등)

    ✔ 멀티스레드 환경에서 개발하려면 동기화 잘못하면 버그 생김

 

🤔 이걸 실무 개발자가 알아야 하는 이유가 뭘까?

앱이 느려질 때 : cpu 스케줄링, 메모리 과부하 등 의심
서버 과부하 : 프로세스/스레드 동작 원리 이해 > 최적화 가능
멀티스레드 개발 : 동기화 원리를 모르면 race confition 발생
면접 필수 : 대부분의 기술 면접에서 OS 개념은 반드시 알아야한다.

'실무 > cs' 카테고리의 다른 글

프론트엔드 아키텍처(Architecture)란?  (1) 2025.04.16
트랜잭션 이란?  (0) 2025.04.08
UI 란?  (0) 2025.04.03