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 을 잘 작성해야 됨)
참조
- 전체 강의 - https://www.youtube.com/watch?v=-C4j7DpUtLs&list=PLXvgR_grOs1BQCziQ_MpM877BdBxwbMzA&index=16
- 동기화 - 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.
- 동기화 - https://contents.premium.naver.com/3mit/wony/contents/221214201647988tf
- 의존성 - 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
'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 |