본문 바로가기
OS 운영체제

고급 이론 용어 정리-동시성, 병렬성, 원자성, 의존성

by yororing 2024. 9. 7.

00 개요

  • 운영 체제 관련 고급 이론을 이해하기 위한 기초적인 용어 정리
  • 동시성, 병렬성, 원자성, 의존성 (+ 동기화, 교착상태/데드락)정의
    • Concurrency, Parallelism, Atomicity, Dependency (+ Synchronization, Deadlock)
  • 이 개념들은 특히 다중 스레드나 병렬 처리가 중요한 컴퓨터 과학에서 핵심적인 개념
  • 참조한 강의: https://www.youtube.com/watch?v=-C4j7DpUtLs&list=PLXvgR_grOs1BQCziQ_MpM877BdBxwbMzA&index=16

01 동시성

1. 정의

  • 여러 사람이 여러 일을 각자 동시에 할 수 있는 상태
  • 여러 작업이나 프로세스를 동시에 처리하는 시스템의 능력으로, 엄밀히 말하자면 작업이 동시에 실행되는 것은 아니지만, 시간대가 겹치게 처리되는 것을 의미

02 병렬성

1. 정의

  • 하나의 작업 (또는 대상이 같은 작업)을 여러 사람이 동시에 수행할 수 있는 상태
  • 한가지 일에 여러 사람이 달려들어서 같이 하는 것
  • 여러 작업이나 프로세스가 동일한 시간에 동시에 실행되는 것을 의미하며, 주로 서로 다른 프로세서나 코어에서 협력하여 동시에 작업을 처리하는 것
  • 동시성 안에 병렬성이 있음

03 원자성

1. 정의

  • 작업이 충돌 없이 연속적으로 이루어져야 하는 특성
  • '쪼개어 나눌 수 없는 연속된 일' (@7:40)
  • 작업이나 트랜잭션이 완전히 끝나거나 전혀 실행되지 않는 성질을 의미
  • 프로그래밍에서 여러 작업이 하나의 단위처럼 동작하게 하여 일관성을 유지하는 데 사용됨
  • 설명:
    • 동시에 작업 수행 시 충돌 발생 가능
    • 충돌이 일어나지 않게 각 작업의 '원자성'이 보장되어야 하는데 이를 위해 '동기화'를 해야 됨
    • '동기화(synchronization)'란
      • 시스템을 동시에 작동시키기 위해 여러 사건들을 조화시키는 것, 서로가 알고 있는 정보(데이터)를 일치시키는 것
      • 동시 실행되는 여러 프로세스의 실행 순서나 데이터의 일관성을 보장하기 위해 실행을 제어하는 방법

04 의존성

1. 정의

  • 한 작업이 다른 작업의 결과나 완료를 기다려야만 진행할 수 있는 상태
  • 의존 관계를 설명하는 용어
  • A 컴포넌트가 동작하기 위해 B 컴포넌트가 필요하다면 ‘A 컴포넌트는 B 컴포넌트에 의존한다’라고 표현
  • 전제조건으로 보통 행위나 존립 (또는 성립)에 대해 의존성을 고려함

05 교착상태 (Deadlock) - 심각한 논리적 오류!

1. 정의

  • 두 개 이상의 프로세스가 서로의 자원을 기다리며 무한히 멈춰있는 상태로, 이로 인해 프로세스들이 더 이상 진행되지 않는 상황
  • 강의 참조 @14:57
  • 교착상태(Deadlock)가 발생하지 않도록 논리구조를 잘 만들어야됨 (즉, 예외처리 Exception 을 잘 작성해야 됨)

 

참조

  1.  전체 강의 - https://www.youtube.com/watch?v=-C4j7DpUtLs&list=PLXvgR_grOs1BQCziQ_MpM877BdBxwbMzA&index=16
  2.  동기화 - https://ko.wikipedia.org/wiki/%EB%8F%99%EA%B8%B0%ED%99%94#:~:text=%EB%8F%99%EA%B8%B0%ED%99%94(%E5%90%8C%E6%9C%9F%E5%8C%96%2C%20synchronization),%EC%A1%B0%ED%99%94%EC%8B%9C%ED%82%A4%EB%8A%94%20%EA%B2%83%EC%9D%84%20%EC%9D%98%EB%AF%B8%ED%95%9C%EB%8B%A4.
  3. 동기화 - https://contents.premium.naver.com/3mit/wony/contents/221214201647988tf
  4. 의존성 - https://medium.com/@junep/%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C%EC%97%90%EC%84%9C-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0-b242a2fd4e85 
  5.  
  6.  

'OS 운영체제' 카테고리의 다른 글

PID (프로세스 식별자)  (2) 2024.09.20
bitmask (비트마스크)  (0) 2024.09.05
failover (자동 전환)  (0) 2024.08.27
오버헤드 (Overhead)  (0) 2024.08.26
shared memory (공유 메모리)  (0) 2024.08.15