운영체제

    [운영체제] 메모리 (Memory)

    메인 메모리(main memory) 메인 메모리는 CPU가 직접 접근할 수 있는 접근 장치 프로세스가 실행되려면 프로그램이 메모리에 올라와야 함 주소가 할당된 일련의 바이트들로 구성되어 있음 CPU는 레지스터가 지시하는대로 메모리에 접근하여 다음에 수행할 명령어를 가져옴 명령어 수행 시 메모리에 필요한 데이터가 없으면 해당 데이터를 우선 가져와야 함 이 역할을 하는 것이 바로 MMU 메모리 관리장치(MMU)는 논리 주소를 물리주소로 변환해줌 뿐만 아니라 메모리 보호나 캐시 관리 등 CPU가 메모리에 접근하는 것을 총 관리해주는 하드웨어임 메모리의 공간이 한정적이기 때문에, 사용자에게 더 많은 메모리를 제공하기 위해 '가상 주소'라는 개념이 등장 (가상 주소는 프로그램 상에서 사용자가 보는 주소 공간이라고..

    [운영체제] 페이지 교체 알고리즘(Page Replacement Algorithm)

    [운영체제] 페이지 교체 알고리즘(Page Replacement Algorithm) 페이지 교체 알고리즘 페이지 부재 발생 → 새로운 페이지를 할당해야 함 → 현재 할당된 페이지 중 어떤 것 교체할 지 결정하는 방법 좀 더 자세하게 생각해보면? 가상 메모리는 요구 페이지 기법을 통해 필요한 페이지만 메모리에 적재하고 사용하지 않는 부분은 그대로 둠 하지만 필요한 페이지만 올려도 메모리는 결국 가득 차게 되고, 올라와있던 페이지가 사용이 다 된 후에도 자리만 차지하고 있을 수 있음 따라서 메모리가 가득 차면, 추가로 페이지를 가져오기 위해서 안쓰는 페이지는 out하고, 해당 공간에 현재 필요한 페이지를 in 시켜야 함 여기서 어떤 페이지를 out 시켜야할 지 정해야 함. (이때 out 되는 페이지를 vic..

    [운영체제] Deadlock

    [운영체제] Deadlock 데드락(DeadLock) 프로세스가 자원을 얻지 못해서 다음 처리를 하지 못하는 상태'교착 상태'라고도 부름시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 데드락이 일어나는 경우 프로세스1과 2가 자원1,2를 모두 얻어야 한다고 가정해보자t1 : 프로세스1이 자원1을 얻음 / 프로세스2가 자원2를 얻음t2 : 프로세스1은 자원2를 기다림 / 프로세스2는 자원1을 기다림 현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠짐→ 이것이 바로 DeadLock!!!!!! (주로 발생하는 경우) 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생한 프로세스가 자원을 요청했을 때, 동시에 그 자원을 사용할 수 없..

    [운영체제] 뮤텍스(Mutex) & 세마포어(Semaphore)

    임계 영역(Critical Section) 하나의 프로세스가 자신의 임계 영역에서 작업하는 동안에, 다른 프로세스가 그 임계 영역에 들어오지 못하도록 경쟁 상황을 막는 것 임계 영역은 프로세스 영역 중 'Code'에 해당 코드 영역은 다음과 같이 나누어짐 [잔류 영역] [진입 영역] [임계 영역] [출구 영역] 진입 영역과 출구 영역에서 임계 영역 처리 중일 때 다른 프로세스가 끼어들지 못하게 처리 Linux에서는 이러한 처리를 뮤텍스와 세마포어를 이용 진입 영역에서 뮤텍스 lock을 통해 다른 프로세스 접근을 막아줌 프로세스의 임계 영역 처리가 끝나면 뮤텍스 unlock을 통해 다른 프로세스 접근 허용 임계 영역이 중단되지 않도록 하기 위해선 3가지 조건을 만족해야 함 상호 배제 (Mutual Excl..

    [운영체제] 스케줄러

    [운영체제] 스케줄러 [운영체제] 스케줄러 스케줄링이란?시스템이 실행하고자 할 때 프로세서(CPU)를 프로그램들에게 할당하는 과정 프로세스(Process)는 자신의 임무를 모두 수행하고 사라질 때까지 많은 큐를 돌아다님이때 프로그램들은 제한된 프로세서(CPU)를 서로 사용하려고 함OS는 이러한 프로세스 중 하나를 택하는데, 바로 스케줄러가 이러한 역할을 담당 가장 자주 사용되는 스케줄러는 장기 스케줄러와 단기 스케줄러(주로 일괄처리 시스템에서 사용) 실행 준비가 완료된 프로세스들은 준비 큐에 놓임프로세스는, 프로세서(CPU)를 할당 받을 때까지 준비 큐에서 대기함 장기 스케줄러(Long Term Scheduler)작업 스케줄러, 승인 스케줄러라고도 함디스크 내의 작업을 어떤 순서로 메모리에 가져올 지 결..