공부/OS
-
Page Replace Algorithm공부/OS 2016. 6. 26. 13:07
Page Replace Algorithm이란?Virtual memory system에서 페이지 부재(page fault)가 발생했을때 주기억장치(메모리)의 모든 페이지 프레임이 사용중이라면 어느 페이지 프레임을 교체할 지 결정하는 알고리즘FIFO(First In First Out)페이지 교체 시, 메모리에 올라온지 가장 오래된 페이지를 내쫓는다.장 점: 가장 간단한 페이지 교체 알고리즘 단 점:가장 오래된 페이지가 초기화 모듈이라면 성능이 저하될 수 있음Belady의 모순(Belady's anomaly)프로세스에게 프레임을 더 주었는데 오히려 페이지 부재율이 더 증가하는 현상OPT(Optimal)앞으로 가장 오랜 동안 사용되지 않을 페이지를 찾아 교체한다 장 점: 모든 알고리즘보다 낮은 페이지 부재율 B..
-
가상 메모리 (virtual memory)공부/OS 2016. 6. 26. 13:00
프로세스와 가상 메모리모든 프로세스는 자신만의 가상 주소 공간을 가지고 있다. 32비트/64비트 프로세스는 각 비트수에 맞게 최대 4GB/16GB의 주소 공간을 가진다.모든 프로세스들은 자신만의 주소 공간을 가지기 때문에, 특정 프로세스 내에서 쓰레드가 수행될 때 해당 쓰레드는 프로세스가 소유하고 있는 메모리에 대해서만 접근이 가능하다. 다른 프로세스에 의해 소유된 메모리는 숨겨져 있으며, 접근이 불가능하다.따라서, A 프로세스가 0x12345678 주소에 무엇인가를 저장하였지만, B 프로세스 역시 0x12345678 주소에 무엇인가를 저장할 수 있으며, 이 주소들은 완전히 독립되어 있는 것이다.즉, 가상 메모리는 프로세스의 logical memory와 physical memory를 분리하기 위해 생겨난..
-
데드락(Deadlock)공부/OS 2016. 6. 25. 22:34
데드락이란?프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태예를 들어 P1과 P2가 리소스 A,B 둘 다를 얻어야 한다고 가정한다. t1(첫 번째 시간)에 P1이 리소스 A를 얻고 P2가 리소스 B를 얻었다면 t2(다음 시간)때 P1은 리소스 B를, P2는 리소스 A를 기다리게 된다. 하지만 서로 원하는 리소스가 상대방에게 할당되어 있기 때문에 이 두 프로세스는 무한정 기다리게 되는데 이러한 상태을 DeadLock상태라고 한다.데드락 발생 조건데드락은 아래 네 가지 조건이 동시에 성립 할 때 발생한다. 즉, 아래의 네 가지 조건 중 하나라도 성립하지 않도록 만든다면 데드락을 해결할 수 있다.상호 배제 (Mutual exclusion)자원은 한 번에 한 프로세스만이 사용할 수 있어야 한다점유 대기..
-
스핀 락(Spin lock), 크리티컬 섹션(Critical section), 세마포어(Semaphore), 뮤텍스(Mutex)공부/OS 2016. 6. 25. 22:33
스핀 락Spin Lock 은 이름이 뜻하는대로, 만약 다른 스레드가 lock을 소유하고 있다면 그 lock이 반환될 때까지 계속 확인하며 기다리는 것이다. "조금만 기다리면 바로 쓸 수 있는데 굳이 컨텍스트 스위칭으로 부하를 줄 필요가 있나?" 라는 컨셉으로 개발된 것으로 크리티컬 섹션에 진입이 불가능할때 컨텍스트 스위칭을 하지 않고 잠시 루프를 돌면서 재시도 하는 것을 말합니다. Lock-Unlcok 과정이 아주 짧아서 락하는 경우가 드문 경우(즉; 적절하게 크리티컬 섹션을 사용한 경우) 유용하다. Spin Lock 은 다음과 같은 특성을 갖는다.Lock을 얻을 수 없다면, 계속해서 Lock을 확인하며 얻을 때까지 기다린다. 이른바 바쁘게 기다리는 busy wating이다.바쁘게 기다린다는 것은 무한 ..
-
OS공부/OS 2016. 6. 25. 22:32
OS란?컴퓨터의 하드웨어와 소프트웨어를 제어하며, 사용자가 컴퓨터를 쓸 수 있게 만들어주는 프로그램OS의 목표어플리케이션을 위한 기본 실행 환경을 제공해 사용자의 프로그램을 정확하게 실행컴퓨터 시스템을 편리하고 효율적이고 안전하게 사용할 수 있게 만듬OS의 관점resouce allocator - 컴퓨터 시스템의 자원(소프트웨어, 하드웨어)를 할당해주고 이것들을 효율적으로 관리control program - 사용자 프로그램 실행과 I/o 장치 실행을 통제한다.kernel - 컴퓨터 운영체계의 가장 중요한 핵심으로서 운영체계의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공한다.멀티 프로세스/ 멀티 테스킹 : 여러 작업은 동 시간에 메인메모리 안에서 유지되고 이러한 프로세스들은 cpu time, I/o ..