본문 바로가기

학교 강의/운영체제8

[Chapter 6] Process Synchronization storage box의 데이터가 execution box(CPU 역할)로 전송됨-> execution box는 연산한 결과를 storage box(MAC 주소 공간 역할)로 돌려줌 Race Condition : 현실과 비슷한, 더 복잡한 상황은 다음과 같은데, 여러 개의 box가 경쟁하는 Race Condition이 발생한다. Race Condition: Execution box들이 storage box를 차지하기 위해 경주하는 것 Execution boxStorage boxCPUMemory컴퓨터 내부디스크프로세스그 프로세스의 주소공간 - 이 부분 반교수님꺼 들을 것 1, 2는 여러 Execution box가 Storage box를 공유할 때 발생3은 CPU가 여러 개일 때 발생 1. kernel .. 2025. 7. 10.
Deadlocks Deadlock이란교착상태: 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태절차: request → allocate → use →release Deadlock 발생 4가지 조건 4가지 조건 모두 가져야 deadlock 생김 1. Mutual exclusion상호배타적인 자원매 순간 하나의 프로세스만이 자원 사용 가능 2. Nopreemption스스로 내어놓을 뿐, 자원 강제로 빼앗기지 않음 3. Hold and wait다른 자원 기다릴 때 보유 자원 빼앗기지 않음 4. Circular wait필요한 자원들끼리 사이클 형성돼야 함 자원 할당 그래프 - Pi → Rj: request- Rj → Pi: assignment R2에 자원이 2개 있으므로, 둘 중 하나만 cycle 없으면 dead.. 2025. 6. 10.
Synchronization Hardware Synchronization Hardware synchronization을 지원하는 hw가 있으면 앞의 문제가 수월하게 해결된다. 이전까지는 한 사용자가 변경 사항을 저장하지 않은 상태에서 다른 사용자가 읽어갔을 때 불일치하여 생기는 문제였다.따라서 이 문제는 하드웨어가 test&modify 작업을 원자적으로(atomic하게) 수행하도록 지원하면 해결 가능하다. 다음 두 연산을 atomic하게 한 번에 수행 가능하도록 해준다.1. Read: a값을 읽어가고(0/1)2. TRUE: a값을 TRUE로 만들기(1로 세팅) 예컨대 다음과 같이 빨간 형광펜 부분에서 atomic한 수행이 발생한다.lock=False일 경우: lock을 read하는 동시에 TRUE로 변경시킴lock=True일 경우: while문 조.. 2025. 6. 9.
[Chapter 4] Process Management process를 생성하는 부분에 대해 중점적으로 볼 것임 process 생성(fork -> exec) : process 생성한다 = Parent process(원래 존재하는 process)가 children process(자식 프로세스)를 생성하는 것부모는 자식이 종료될 때까지 기다릴 수도 있고, 둘이 경쟁 관계일 수도 있다.But, parent process와 children process는 관계만 이럴 뿐 독립적으로 작동한다. 프로세스는 자원을 부모 프로세스로부터 받거나 운영체제로부터 받는다.- process는 thread와 달리 주소 공간 공유하지 않기 때문에 복사해줘야 함.- PCB도 별도로 만들어주고 부모꺼 복사.(code+data+stack 모두 복사)- 자식은 복사본에 자신의 프로그램 올림 .. 2025. 4. 19.