[CS] 컴퓨터 OS 심화

Jeini·2025년 8월 29일
0

📌 CS

목록 보기
5/6

💡 목차

❗️ 프로세스 처리방법을 이해할 수 있다.


📊 순차 & 병렬 & 병행

1️⃣ 순차처리 (Sequential Processing)

👉 하나 끝내고 다음으로 넘어가는 방식

  • 작업을 한 번에 하나씩, 순서대로 처리하는 것. CPU가 하나의 명령어만 처리.

  • 집안일 비유 :
    세탁 → 청소 → 설거지
    세탁이 다 끝나야 청소 시작, 청소 끝나야 설거지 시작.

📝 장점: 단순, 관리 쉬움

📝 단점: 속도 느림, 여러 작업이 겹치면 오래 걸림

2️⃣ 병행처리 (Concurrent Processing)

👉 동시에 진행되는 것처럼 보이지만 사실은 번갈아가며 조금씩 처리

  • CPU가 여러 작업을 빠르게 교체(시분할)해서 처리해서, 동시에 실행되는 것처럼 보이는 것. (실제로는 "동시성")

  • 집안일 비유 :
    한사람이 세탁기를 돌려놓고(자동), 기다리는 동안 청소 시작 → 청소 중에 잠깐 멈추고 설거지도 조금 함 → 다시 청소 마무리.
    즉, 작업을 쪼개서 번갈아가며 진행하는 느낌.

📝 장점: 자원 효율적 활용 (CPU 놀리지 않음)

📝 단점: 실제 병렬은 아니므로 작업 속도 자체가 빨라지는 건 아님

3️⃣ 병렬처리 (Parallel Processing)

👉 여러 작업을 진짜 동시에 처리하는 것 (멀티코어/멀티프로세서)

  • 여러 개의 CPU(또는 코어)가 있어서 동시에 다른 작업을 처리.

  • 집안일 비유 :
    내가 청소하는 동안, 동생이 설거지하고, 세탁기는 자동으로 빨래 돌리는 상황.
    진짜 물리적으로 동시에 여러 일이 진행되는 것.

📝 장점: 속도 향상, 진짜로 동시 실행 가능

📝 단점: 하드웨어 비용 증가, 동기화 문제 발생 가능

4️⃣ 정리

구분처리 방식집안일 비유특징
순차처리하나 끝내고 다음세탁 → 청소 → 설거지단순하지만 느림
병행처리번갈아가며 조금씩세탁기 돌리는 동안 청소/설거지를 조금씩 교체동시에 보이지만 실제로는 시분할
병렬처리진짜 동시에내가 청소, 동생은 설거지, 세탁기는 자동속도 빠름, 하드웨어 자원 필요

♻️ Context Switching

운영체제가 실행 중인 프로세스/스레드를 다른 프로세스로 바꾸는 것

  • 운영체제가 멀티태스킹을 가능하게 해주는 핵심 기술
  • A 프로세스 실행 중 → 잠시 멈추고 → 상태(Context)를 저장
  • B 프로세스로 전환 → 저장된 상태 불러와 실행
  • 나중에 다시 A로 돌아오면 → 저장해둔 상태부터 이어서 실행

💡 덕분에 CPU는 하나인데도 여러 프로그램이 동시에 실행되는 것처럼 보인다. (멀티태스킹 illusion)

1️⃣ Context란?

Context(문맥) = 프로세스(또는 스레드)가 실행되던 당시의 상태 정보

  • CPU 레지스터 값
  • 프로그램 카운터(어디까지 실행했는지)
  • 메모리 주소 정보
  • 스택, 변수 값 등

👉 즉, 작업 중 Bookmark(책갈피) 같은 것.

2️⃣ 언제 일어나나?

  • 시간 할당량 끝날 때 (CPU 스케줄러에 의해)
  • I/O 요청 발생 (예: 프로세스가 파일 읽는 동안 CPU 놀릴 수 없으니 다른 프로세스 실행)
  • 우선순위 높은 프로세스 등장 (인터럽트 등)

3️⃣ 쉽게 비유하면

  • 싱글 CPU = 선생님 1명
  • 여러 프로세스 = 학생 여러 명
  • 선생님이 학생 A 숙제 보다가, 잠시 중단(책갈피 꽂기) → 학생 B 숙제 검사 시작 → 다시 A로 돌아옴
  • 이때 책갈피 꽂고/펼치는 과정 = Context Switching

✅ Context Switching과 병행 처리

  • 병행 처리에서는 CPU가 한 번에 한 프로세스(스레드)만 실행할 수 있음
    그래서 운영체제가 아주 빠르게 작업을 번갈아가며 실행 → 이 과정에서 Context Switching이 발생

👉 즉, 병행 처리(Concurrency)를 구현하기 위해 Context Switching이 필요함.

❗️병렬 처리에서도 Context Switching이 필요할까?

  • 멀티코어 환경(병렬 처리)에서도 한 코어당 여러 프로세스를 번갈아 실행해야 할 때가 있음 → 이때도 Context Switching 발생
  • 단, 병렬 환경에서는 여러 코어가 있어서 동시에 실행이 가능하니까 Context Switching의 빈도가 상대적으로 적을 수도 있음
profile
Fill in my own colorful colors🎨

0개의 댓글