CS/운영체제2022. 4. 4. 16:10[운영체제] 경쟁 상태(Race Condition)

✔︎ 경쟁 상태(Race Condition)란 ? 공유 자원에 대해 여러 프로세스가 동시에 접근할 때 결과값에 영향을 줄 수 있는 상태 동시 접근 시 자료의 일관성을 해치는 결과가 나타날 수 있다. 경쟁 상태도 교착 상태의 종류 중에 하나이다. ✔︎ Race Condition이 발생하는 경우 1. 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널 모드에서 데이터를 로드해 작업을 수행하다가 인터럽트가 발생해 같은 데이터를 조작하는 경우 해결법 : 커널모드에서 작업을 수행하는 동안 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다. 2. 프로세스가 'System Call'을 하여 커널 모드로 진입하고 작업을 수행하는 도중 문맥 교환이 발생할 때 문제점 : 프로세스1이 커널모드에서 ..

[운영체제] DeadLock (데드락)
CS/운영체제2022. 4. 4. 15:35[운영체제] DeadLock (데드락)

✔︎ DeadLock (데드락)이란 ? 프로세스가 원하는 자원을 얻지 못해 다음 작업 처리를 하지 못하는 상태를 말한다. '교착 상태'라고 부르며 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 발생 상황 멀티 프로그래밍 환경에서 한정된 자원을 사용하기 위해 서로 경쟁하는 상황에서 발생 가능 어떤 프로세스가 자원을 요청했을 때에 그 자원을 사용할 수 없는 상황이 발생할 수 있다. 이 때, 프로세스가 대기 상태로 들어가게 된다. 대기 상태로 들어간 프로세스들이 실행 상태로 변경될 수 없을 때 '교착 상태' 발생 ✔︎ DeadLock 발생 조건 발생 조건 4가지가 모두 성립해야 데드락이 발생하며 하나라도 성립하지 않으면 해결 가능하다. 1. 상호 배제 (Mutual exclusion) 자..

[운영체제] CPU Scheduling
CS/운영체제2022. 4. 4. 12:52[운영체제] CPU Scheduling

✔︎ CPU Scheduling이란 ? CPU를 효율적으로 사용하기 위해 프로세스를 잘 배정하는 것 오버헤드와 기아현상을 줄이고 CPU 사용률을 높이기 위해 사용한다. ✔︎ CPU Scheduling Criteria 시스템 입장에서의 성능 척도 CPU 이용률(Utilization) : CPU를 이용한 수치의 백분율 Throughput : 단위 시간당 완료된 프로세스의 수 사용자 입장에서의 성능 척도 Turnaround Time : CPU를 가져온 후 다 쓰고 나갈 때까지의 시간 (프로세스가 아닌 CPU를 가져온 후 나갈 때 까지의 시간) Response Time : 작업 요청 후 응답이 오는데 걸리는 시간, ready 큐에서 최초의 CPU를 얻기까지의 시간 Waiting Time : 대기 큐에서의 대기 ..

[운영체제] IPC(Inter Process Communication)
CS/운영체제2022. 4. 4. 11:21[운영체제] IPC(Inter Process Communication)

✔︎ IPC(Inter Process Communication)란 ? 독립적 구조를 가진 프로세스 간의 통신을 가능하도록 해주는 것 프로세스가 작업 중 다른 프로세스의 공간을 침범(wirte)해 버린다면 (예를 들어 다른 프로세스의 스택을 건드리는 경우) 문제가 발생한다. 이를 비정상 공유라고 하는데 커널은 이것을 막기 위해 "Protection"을 한다. Protection이란 ? 임의의 프로세스가 다른 프로세스의 주소 공간에 접근하는 것을 금지하는 것이다. 오직 신뢰할 수 있는 커널만이 모든 프로세스의 주소 공간에 접근할 수 있도록 하며 프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스 간 통신을 할 수 있게 된다. Kernel이란 ? 운영체제 자체도 소프트웨어이므로 메모리에 올라가야 사용할 ..

[운영체제] Process Management
CS/운영체제2022. 3. 17. 18:21[운영체제] Process Management

✔️ 프로세스의 상태 1. 생성(Created) 작업(Job)을 커널에 등록 PCB 할당 및 프로세스 생성 - created Ready 쓸 수 있는 메모리 공간 체크 및 프로세스 상태 전이 (메모리 공간 있을 때) suspended ready 쓸 수 있는 메모리 공간 체크 및 프로세스 상태 전이 (메모리 공간 없을 때) 2. 준비(Ready) 프로세서(CPU) 할당 대기 상태 Queue에서 대기하고 있는 상태를 의미 (물리적인 메모리에 적재된 상태를 말한다.) 3. 실행(Running) 프로세서와 필요한 자원을 모두 할당 받은 상태 프로세스를 실행하는 중 Time runout(preemption) Running State에서 Ready State로 돌아가는 것 sleep(block) Running Sta..

[운영체제] PCB(Process Control Block) & Context Switching
CS/운영체제2022. 3. 17. 17:21[운영체제] PCB(Process Control Block) & Context Switching

✔️ Process Management 프로세스란 실행 중인 프로그램을 의미하며 구체적으로 시스템(커널)에 등록되고 커널의 관리하에 있는 작업을 뜻한다. 또한 프로세스는 각종 자원들을 요청하고 할당받을 수 있는 프로세스 관리 블록(PCB)를 할당받은 개체이다. 프로세스 관리란 CPU가 여러개의 프로세스가 있을 때 CPU 스케줄링을 통해 프로세스를 관리하는 것을 말한다. 이때, CPU는 각 프로세스들을 식별할 수 있어야 관리가 가능하다. 프로세스의 특징을 갖고 있는 것이 바로 Process Matadata이다. ✔️ Process Matadata process-id : 새로운 프로세스에 시스템이 할당해주는 고유 id process- state : 프로세스의 라이프 타임과 관련된 상태로, waiting, r..

image