시스템을 사용하기 편리하게 관리해주는 소프트웨어운영체제가 프로세서, 메모리, 디스크와 같은 물리적 자원의 접근을 위해 위의 자원들을 이용한 가상 형태의 자원을 생성이를 다른 프로그램들이 사용할 수 있도록 운영체제는 API를 제공한다 = 수백개의 시스템콜여러 프로그램이
실행중인 프로그램여러 프로세스를 동시에 실행하려면..?\-> 운영체제를 통해 CPU를 가상화한다== 시분할 (time sharing)이를 위해 도구, 지능이 필요함도구 = 메커니즘ex) context switch(문맥 교환)프로그램 실행하던 것을 잠시 멈추고 다른 프로
여러 프로세스를 동시에 실행되는 것처럼 보이기 위해서는 CPU 공유는 불가피\-> CPU 시간을 나누어 사용해야한다문제점 발생성능 저하제어 문제CPU 통제 유지하면서 프로세스를 효율적으로 사용해야함,, 중요그냥 cpu에서 실행하는것직접 실행할 때...프로그램이 OS가
프로세스가 동작하는 일련의 행위를 말함가정..모든 작업은같은 시간동안 실행됨동시에 도착함일단 시작하면 종료될 때까지 실행됨CPU만 사용 (입출력 하지않음)실행시간은 사전에 알려져있음turnaround time (반환시간)작업이 완료된 시각 - 작업이 도착한 시각성능 측
해결하고자 한 문제 짧은 작업 먼저 실행시켜 반환시간 최적화 대화형 사용자에게 응답시간 최소화 제공 기본 구성 여러개의 큐로 구성되어있다 큐마다 각각 다른 priority level(우선순위) 배정됨 각 작업의 특성에 따라 동적으로 우선순위 부여! 기본 규칙
Propotional Share 반환시간, 응답시간 최적화 대신 각 작업에게 CPU의 일정비율을 보장하는 것이 목적 ex) 추첨 스케줄링 (lottery scheduling) 말그대로 추첨을 통해 실행될 프로세스 결정 더 자주 실행되어야 하는 프로세스는 당첨기회 더
multicore : 여러개의 CPU 코어가 하나의 칩에 내장응용 프로그램을 병렬로 실행해야함\-> 보통은 multi thread를 이용멀티 프로세서 스케줄링은 어떻게 하는가 문제 발생차이점하드웨어 캐시의 사용방식메인 메모리에서 데이터를 가져오게 되면 오랜 시간이 걸리
운영체제는 메모리 0부터 존재물리메모리에 하나의 실행중인 프로그램 존재, 나머지 메모리 사용특별한 가상화 없음여러 프로그램이 실행 상태운영체제가 이들을 번갈아가면서 실행 -> CPU의 이용률 증가오랜 시간이 걸리는 프로그램-디버그 사이클에서 일괄 처리방식의 한계를 느낌
제한적 직접 실행방식(LDE)에 부가적으로 사용되는 기능가상주소가 실제로 사용하는 물리주소로 변환됨하드웨어가 주소를 변환해주지만 젇확한 변환을 위해서는 OS가 메모리의 빈 공간과 사용중인 공간을 알고 있어야 하고 메모리 사용을 제어해야함두개의 레지스터 사용 ( base
베이스-바운드 레지스터 방식은 메모리 낭비가 심함\-> 세그멘테이션 탄생MMU에 하나의 베이스와 바운드 값이 존재하는 것이 아니라 세그멘트 마다 베이스와 바운드 값이 존재 세그멘트 : 특정 길이를 가지는 연속적인 주소공간세그멘테이션을 사용해서 각 세그먼트를 물리 메모리
운영체제 공간 관리문제 해결법1\. 가변크기 분할공간 자체가 단편화될 수 있음고정 크기 분할 (==paging)고정 크기 단위 : 페이지상응하는 물리 메모리 : 페이지 프레임운영체제는 프로세스마다 각 페이지에 대한 물리 메모리의 위치 기록을 위해 페이지 테이블 할당가상
주소 변환을 빠르게 하기 위해 Translation-Lookaside Buffer을 도입TLB는 MMU의 일부이다가상주소-실주소 변환정보를 저장하는 하드웨어 캐시가상 메모리 참조 시 TLB에 있는지 먼저 확인하게 됨있다면 빠른 변환 수행가상주소 추출 후 해당 VPN의
너무 크면 많은 공간을 차지하게 된다...페이지 테이블 크기를 줄이려면 -> 페이지 크기를 증가시킨다!\-> 내부 낭비 공간이 증가 (내부 단편화)페이징과 세그멘테이션을 결합하여 페이지 테이블의 크기를 줄인다세그먼트마다 따로 페이지테이블을 둠\-> 여전히 페이지 테이블
모든 페이지들이 물리 메모리에 존재한다 가정했지만...큰 주소공간 지원을 위해서는 일부 공간을 하드디스크 드라이브에 저장해야함디스크에 페이지를 저장할 일정 공간 확보가 필요\-> 스왑 공간(swap space)물리메모리에 존재하지 않는 가능성이 생김 이를 표현하려면 P
페이지 중 하나를 내보내야 한다면,,? 어떤 것을 내보내야 하는가최적미래를 예측함 ,,, 불가능 다른 교체 정책 비교할 때 사용FIFO먼저 들어온 것이 먼저 나감블럭들의 중요도 판단이 안됨... LRULeast-Recently-Used과거 사용 이력을 활용가장 오래전
가장 간단한 자료구조중 하나자료구조 호출할 때 락을 추가, 리턴할 때 락을 해제확장성이 떨어짐( 여러 쓰레드 동시실행하면 시간이 오래 걸린다)근사 카운터CPU마다 존재하는 지역카운터하나의 전역 카운터 존재기본 개념쓰레드는 지역 카운터 증가시킴지역 카운터는 지역 락에 의
파일시스템은 파일, 디렉토리 및 경로이름을 제공하고 데이터를 저장한다 응급 복구를 지원한다 서로 다른 프로세스가 동시에 작동할 수 있으므로 불변성 유지 인기있는 블록의 메모리 내 캐시 유지 구조 7계층으로 구성 디스크 하드 드라이브에서 블록을 읽고 씀 버퍼 캐시