이화여대 반효경 교수님 강의 : http://www.kocw.or.kr/home/cview.do?cid=4b9cd4c7178db077
컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층.
컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하고, 자원을 효율적으로 관리 (주어진 자원으로 최대한의 성능을 내도록, 특정 사용자/프로그램이 CPU를 독식하지 않도록)
프로세스의 도착한 순서대로 처리해주는 기법.
은행에서의 번호표처럼 먼저 온 순서대로~
공평해보이지만, 효율적이진 않음.
혹여나 첫번째로 오는 프로세스가 시간을 많이 잡아먹게 되면, 다른 프로세스들이 너무 오래 기다리게 됨.
금번 CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 스케줄하는 기법. Minimum average waiting time을 보장.
다만, CPU 사용시간이 오래 걸리는 프로세스의 경우 계에에에에속 기다려야 하는 starvation이 발생할 수 있음.
효율성은 좋지만, 형평성이 별로.
각 프로세스는 동일 크기의 CPU 할당시간을 가지고, 할당시간이 끝나면, 인터럽트를 발생시켜 CPU를 빼앗기고 CPU 대기 큐에 다시 줄을 섬.
어떤 프로세스도 (n-1)*할당시간 이상 기다리지 않음.
대기시간이 프로세스의 CPU 사용시간에 비례.
디스크(파일시스템)은 비휘발성으로 컴퓨터 전원이 나가더라도, 정보를 여전히 갖고 있다. 디스크(파일시스템) 속 실행파일 A와 B는 가상 메모리에 자신의 영역을 정한다. 그리고 그 중 당장 필요한 부분은 메모리에 올린다.
메모리 공간을 휘발성이므로, 컴퓨터 전원이 꺼지면 정보가 모두 날라간다. 메모리의 공간이 한정적이기 때문에 어떤 중요하지 않은 부분은 디스크(스왑영역)로 쫓겨나기도 한다.
메모리의 연장선이라고 볼 수 있으나, 디스크(스왑영역)은 비휘발성으로 컴퓨터 전원이 나가도 정보는 살아있다. 다만, 메모리에 정보가 날라가기 때문에 디스크(스왑영역)의 정보가 불필요해진다.
CPU가 요청한 페이지 순서대로 메모리에 올려뒀다, 다만 5번 페이지를 올리기에는 메모리 공간이 한정적이라 하나를 쫓아내야하는데 이때 어떤 걸 쫓아내야하는가?
(미래를 모르는 상황이기 때문에 다음에 잘 나오지 않을 페이지를 골라야 효율적임)
위의 경우 1번 삭제
위의 경우 4번 삭제
어느 것도 장단점이 있기 때문에 잘 해결해야함.
어느 페이지가 미래에 인기 있을 지 모르기 때문.
디스크 큐에 따라 디스크 헤드를 이동하는 데, 헤드의 이동 시간을 최소화하는 것이 중요.
디스크 큐 순서대로 이동.
예를 들어, 1에서 99로 이동해야한다면 헤드 이동이 길어지기 때문에 비효율적
누가 현재 위치에서 헤드 이동이 누가 제일 짧은지 파악 후 이동.
Starvation 문제 (멀리 있다고 계에에에에에속 기다려야할 수도....)
따라서 효율적이지만 형평성 문제 발생
헤드가 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리.
다른 한쪽 끝에 도착하면 역방향으로 이동하며 오는 길목에 있는 모든 요청을 처리.
특정 위치가 차별 받는 것이 없고, 헤드의 이동이 짧아진다는 장점이 있음.
대표적인 예가 엘레베이터 스케줄링.
CPU - Main Memory - Disk (일반적 순서)
계층도를 살펴보면,
위로 올라갈 수록 빠르고 비쌈. 따라서, 적은 용량만 사용..
밑으로 가면 느리지만 가격이 저렴해 용량을 많이 쓸 수 있음.
속도 차이를 완충하기 때문임.
반도체 장치이고 우리가 사용하는 장치는 대부분 NAND형.