본문 바로가기

운영체제22

[운영체제] 디스크 스케쥴링(Disk Scheduling) 1. 디스크 스케줄링디스크 접근 시간디스크 접근 시간은 Seek Time + Rotational Delay + Transfer Time 이다.이 중 다음 실린더를 탐색하는 시간인 Seek Time이 가장 오래걸린다.  다중 프로그래밍 환경 다중 프로그래밍 환경에서 디스크 큐(disk queue)에는 많은 요청(request)들이 쌓여있다. 프로세스들이 계속해서 디스크에 읽기, 쓰기 요청을 하기 때문이다.  어떻게 요청들을 처리하면 탐색시간을 줄일 수 있을까?   2. 디스크 스케줄링 알고리즘디스크 스케줄링 알고리즘은 사용할 데이터가 디스크 여러 곳에 저장되어 있는 경우 데이터를 액세스하기 위해 디스크 헤드가 움직이는 경로를 결정하는 기법이다. 디스크 스케줄링의 목적은 처리량 최대화, 평균 응답시간 최소화.. 2024. 12. 26.
[운영체제] 파일 할당 File Allocation 운영체제 커리큘럼  1. 프로세스 관리 2. 메인 메모리 관리 3. 파일 시스템컴퓨터 시스템 자원 관리  CPU : 프로세스 관리 (CPU 스케쥴링, 프로세스 동기화)  주기억장치 : 메인 메모리 관리 (페이징, 가상 메모리)  보조기억장치 : 파일 시스템 보조기억장치 (하드디스크)  - 하드디스크 : track(cylinder), sector  - Sector size = 512 bytes, cf.Block size하드디스크의 섹터 사이즈는 보통 512bytes 이며 이 섹터들을 모아 블록 단위로 헤더가 읽는다.  - 디스크 = 블록들의 pool-> 어떻게 파일마다 free block을 할당할까? -> 하드디스크 용량 낭비 없도록, 파일 탐색 및 읽는 시간도 고려해야한다.   파일 이란? 사용자가 작성.. 2024. 12. 15.
[운영체제] 페이지 크기 1.  페이지 크기일반적으로 페이지 크기는 4KB ~ 4MB 이다.프로그램 사이즈가 커지면서, 페이지 크기도 점점 커지는 경향이 있다. 페이지 크기는 작은게 좋을까? 큰게 좋을까?페이지 크기는 내부 단편화, Page in/out 시간, 페이지 테이블 크기, memory resolution, page fault 발생 확률에 영향을 미친다. 1) 페이지 크기가 작은 경우페이지 크기가 작은 경우장점은,페이지 크기가 작으면 페이지 단편화가 감소되고, 한 개의페이지를 메인 메모리로 이동하는 시간이 줄어든다. 프로세스 수행에 필요한 내용만 메인 메모리에 적재할 수 있고, Locality에 더 일치할 수 있기 때문에 기억장치 효율성이 높아진다. 반면,페이지 정보를 갖는 페이지 테이블의 크기가 커지고, 매핑 속도가 늦.. 2024. 12. 13.
[운영체제] 프레임 할당 1. 쓰레싱 Thrashing1) CPU 이용률 VS 멀티프로그래밍 수준멀티프로그래밍 수준은 메모리에 올라가있는 프로세스 수라고 생각하면 된다.프로세스 수가 중가하면 CPU가 노는 시간이 줄어 CPU 이용률이 증가한다. 그러나 일정 수준을 넘어가면 CPU이용률이 감소하게된다. 이 현상을 쓰레싱 Thrashing 이라고한다.즉, 프로세스의 처리 시간보다 페이지 교체 시간이 더 많아지는 현상을  말한다. 쓰레싱이 일어나는 원인은 빈번한 page in/out 때문이다. 프로세스가 늘어나면 context switching이 일어날 때 page in/out이 많아지고,  I/O 시간 증가하기 때문이다. 2) 쓰레싱 극복쓰레싱을 극복하기 위한 극복하는 방법은 여러가지가있다.하나는, Global replacement.. 2024. 12. 13.
[운영체제] 페이지 교체 Page Replacement 1. 페이지 교체1) 페이지 교체란?Demand paging 방식을 사용하더라도 프로그램 실행에 따라 요구 페이지가 늘어나고, 언젠가는 메모리가 가득 차게된다.메모리가 가득 차면 추가 페이지를 가져오기 위해 어떤 페이지는 backing store로 몰아내고(page-out), 그 빈 공간으로 페이지를 가져온다. (page-in) 이 때 backing store로 쫓겨난 페이지를 victim page 라고 한다.  2) Victim Page(1) Page-out시 페이지를 backing store에 write 해야할까?page-out 할 때 victim page가 명령어라면 backing store에 이미 있었기 때문에 새로 write할 필요가 없다.하지만 실행하면서 바뀐 내용이 있다면 write해야한다... 2024. 12. 13.