본문 바로가기

Computer Science/OS3

[OS] 동기화(Synchronization) | 스핀락, 뮤텍스, 세마포어 [ 데이터 접근 ] 데이터가 저장되어 있는 위치로부터 데이터를 읽어와서 연산한 뒤, 연산한 결과를 이전에 저장되어 있던 그 위치에 다시 저장한다. 데이터를 읽기만 하면 문제가 없는데, 데이터를 연산하고 수정하게 되면 누가 먼저 읽어 갔는지에 따라 결과가 달라질 수 있다. 이때 발생할 수 있는게 Synchronization(동기화) 문제이다. load X, reg1 inc reg1 store X, reg1 🤼‍♂️ Process Synchronization 공유 데이터(shared data)의 동시 접근(concurrent access)은 데이터의 불일치 문제(inconsistency)를 발생시킬 수 있다. 따라서 일관성(consistency) 유지를 위해서는 협력 프로세스(cooperating proce.. 2023. 2. 2.
[OS] Process | Context Switching (컨텍스트 스위칭) 0. 개요 개발은 프로그램을 만드는 것이다. 그리고 그렇게 만들어진 프로그램이 컴퓨터에서 실행되면, 실행 중인 프로그램을 프로세스라고 부른다. 프로그램 (program) : 컴퓨터가 실행할 수 있는 명령어들의 집합 ✔️ 프로세스 (process) “Process is a program in execution” / 컴퓨터에서 실행 중인 프로그램 : 각각의 프로세스는 독립된 메모리 공간을 할당받는다. 그리고 명령어들과 데이터를 가진다. CPU (central processing unit) : 명령어를 실행하는 연산 장치 메인 메모리 (main memory) : 프로세스가 CPU에서 실행되기 위해 대기하는 곳 I/O (input/output) : 파일을 읽고 쓰거나 네트워크의 어딘가와 데이터를 주고받는 것 :.. 2023. 1. 24.
[OS] 교착상태 (Deadlock) 락(lock)은 동기화를 보장하는 툴(tool)이다. 락을 사용하여 동기화를 수행하다 보면 필연적으로 데드락(Deadlock)이라는 부작용이 생길 수 있다. 데드락 상태가 되면 더 이상 프로세스나 스레드가 진행하지 못하기 때문에 이를 잘 파악하는 것은 중요하다. + 또한 데드락 개념은 DB에서 '분산 서버 동시성 이슈 해결 방안'으로 비관적인 락을 사용할 때 등장하기도 한다. 비관적인 락 : 동시에 연산이 실행되지 않도록 Lock(잠금)을 걸어서 다른 연산이 끼어들지 못하도록 한다. 단점으로는 성능이 느려지고, 데드락 상태에 걸릴 수 있다. 🚗 교착상태 (Deadlock) (두 개 이상의) 일련의 프로세스 혹은 스레드들이 서로가 가진 자원(resource)을 기다리며 block된 상태 자원(resourc.. 2023. 1. 21.
반응형