본문 바로가기

학교 강의/운영체제7

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.
[Chapter 3] Process interrupt 별로 어떤 루틴을 처리해야 하는지 적어놓음 컴퓨터시스템 구조의 흐름 알고 있을 것 A, B, C프로그램이 있다고 할 때 세 프로그램이 돌아가면서 써야 공평함. round loading 방식 2번 interrupt가 들어오면 - 정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 인터럽트를 발생시킴 => 타이머에서 신호가 왔다고 판단- 타이머 값이 0이 되면 타이머 인터럽트 발생- CPU를 특정 프로그램이 독점하는 것으로부터 보호(round robing) -> 스케줄링=> time sharing을 구현하기 위해 널리 이용=> 현재 시간을 계산하기 위해서도 사용됨 Memory부분이 ISR CPU 로 들어가기 전 interrupt line에는 스케줄러가 존재.스케줄러에 따라 device.. 2025. 4. 19.