운영체제 3

[운영체제/OS] 데드락(DeadLock, 교착상태)의 개념, 발생 조건, 처리방법

데드락의 개념 데드락 이란 ? 두개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해 다음 처리를 하지 못하는 상태 '교착 상태'라고도 부르며, 시스템적으로 한정된 자원을 여러곳에서 사용할때 발생 '외나무 양끝에서 두사람이 서로 비켜주기만 기다리는'것과 같으며 아래의 예시를 참고해보자! 프로세스 1과 2가 리소스1과 2를 모두 얻어야 한다고 가정하자 프로세스1이 자원1을 얻은경우 프로세스2는 자원1을 얻을수없고, 프로세스2가 자원2를 가지고 있으므로 프로세스1은 자원2를 얻을 수 없다. 두 프로세스는 무한정 wait 상태에 빠지게되며, 이게바로 DeadLock 데드락의 발생 조건 발생 조건 설명 상호배제(Mutual Exclusion) = Mutex 한번에 하나의 프로세스만이 공유자원 사용가능한 상태 점..

Computer Science/OS 2022.08.29

[운영체제/OS] 캐시(Cache)와 지역성(Locality) & 캐싱라인(Caching Line)

Cache 캐시 메모리(cache Memory) 캐시 메모리란 ? 주기억장치에서 자주 사용하는 프로그램과 데이터를 저장해두고 속도를 빠르게 하는 메모리 속도가 빠른 장치와 느린 장치간의 병목 현상을 줄여주며, 메인 메모리와 CPU사이에 위치한다 캐시가 효율적으로 동작하기 위해서는 CPU가 참조할 정보에 대한 예측이 잘 되어야함 즉, 캐시의 적중률(Hit-rate) 을 극대화 시켜야함 이때 나오는 개념이 캐시의 지역성(Locality) 캐시의 지역성(Locality)이란 데이터에 대한 접근이 시간적-공간적으로 가깝게 발생하는 것을 뜻함 이때 프로그램은 정보를 균일하게 참조하는 것이아니라, 어느 한 순간에 특정 부분을 집중 참조할 것이라는 전재 조건이 존재한다. 시간지역성 : 최근에 참조된 데이터가 곧 다시..

Computer Science/OS 2022.08.29

[운영체제/OS] Process vs Thread 그리고 멀티스레드(Multi Thread)

Process vs Thread Process를 알아보자! 프로세스의 의미 실행중인 프로그램을 의미한다. 다수의 프로그램이 병행 수행될수 있는 오늘날에는 시분할 시스템(타임쉐어링)의 작업단위로 사용됨 프로세스의 상태 변화 생성 -> 준비 : 스케줄러에 의해 프로세스가 호출됨. 준비 -> 살행 : 사전 정의된 스케줄링 알고리즘에 따라 프로세스가 CPU할당 받음. 해당과정을 디스패치(dispatch) 라고함 실행 -> 준비 : 더 높은 우선순위의 프로세스를 실행하거나, 자원할당시간 만료 후 준비상태로 다시 전환. 해당 과정을 타임아웃(Timeout) 이라 부름 실행 -> 대기 : 할당된 시간 이전 실행 중에 기타 입출력 요구, 페이지 교환, read, write 등으로 CPU를 다른 프로세서에 할당 양도한 ..

Computer Science/OS 2022.08.27