모든 프로그램은 우선 메모리에 적재되어야 실행이 가능하므로 메모리는 프로그램을 실행하는 중요한 작업 공간이다. 그리고 다중 프로그래밍 환경에서는 한정된 메모리를 여러 프로세스가 함께 사용하므로 이를 효율적으로 관리하는 방법이 필요하다. 메모리 관리는 프로세스들을 위해 메모리를 할당하고 제거하며 보호하는 활동이다. 메모리 관리와 관련된 주요 정책 1. 적재 정책 : 디스크에서 메모리로 프로세스를 반입할 시기를 결정하는 것. (요구적재, 예상적재) 2. 배치 정책 : 디스크에서 반입한 프로세스를 메모리 어느 위치에 저장할 것인지 결정. 최초적합, 최적적합, 최악적합 등 3. 대치 정책 : 메모리가 충분하지 않을 때 현재 메모리에 할당된 프로세스 중 제거할 프로세스를 결정하는 교체 방법. 선입선출, 최근최소사..
다중 프로그래밍의 장점 : 1. 프로세서 이용률 ↑. 2. 프로세서 처리율 ↑ 스케줄링 : 여러 프로세스가 번갈아 사용하는 자원을 어떤 시점에 어떤 프로세스에 할당할지 결정하는 것. 시스템의 성능에 영향 프로세스 버스트 : 프로세스를 프로세서에서 실행할 때 입출력 버스트 : 프로세스가 추가로 실행하려고 입출력을 기다리고 있을 때 프로세스는 입출력 버스트 후 다음 프로세서 버스트를 위해 준비큐로 이동 스케줄링의 단계 큐잉 도표 : 스케줄링을 표현하는 방법이다.(큐 : 사각형, 자원 : 원, 프로세스 흐름 : 화살표) 장기 스케줄러는 작업 스케줄러라고도 하며, 스케줄링에 따라 디스크에서 메모리로 작업을 가져와 처리할 순서를 결정한다. 작업 스케줄링에 필요한 정보로 제출시간, 작업이름, 작업길이(용량) 등이 ..
병행 프로세스 : 프로세서 하나를 여러 프로세스를 동시에 실행하는 것처럼 보이는 것. 독립 프로세스와 협력 프로세스로 구분 => 공유 자원을 상호 배타적으로 사용한다.(상호 배제와 동기화) 선행그래프, fork와 join구조, 병행문장 상호배제 : 병행 프로세스에서 프로세스 하나가 공유 자원을 사용할 때 다른 프로세스가 해당 데이터에 접근할 수 없게 하는 것 동기화 : 공유 자원을 동시에 사용하지 못하게 실행을 제어하는 방법. 임계자원 : 두 프로세스가 동시에 사용할 수 없는 공유 자원 임계영역 : 임계자원에 접근하고 실행하는 프로그램 코드 부분 임계영역은 1상호배제, 2진행, 3한정 대기 조건을 만족해야 한다. 상호배졔 방법 : 데커의 알고리즘, 테스 명령어, 세마포, 모니터 데커의 알고리즘 : 두 프..
컴퓨터 : 하드웨어 + 소프트웨어 하드웨어 메모리 물리적 주소 : 컴퓨터에 주어진 주소 논리적 주소 : 컴파일러가 프로그램을 기계 명령어로 변환할 때 변수와 명령어에 할당하는 주소 논리적 주소 =>매핑=> 물리적 주소 운영체제(Operating System) : 사용자와 하드웨어 사이의 중간 매개체로 응용 프로그램의 실행을 제어하고 자원을 할당 및 관리하며 입출력 제어 및 데이터 관리와 같은 서비스를 제공하는 소프트웨어 커널 : OS의 기본기능을 실행하는 부분. 일괄 처리 시스템 : 데이터를 모았다가 일괄 처리하는 시스템(초기) 다중 프로그래밍 시스템 : 프로세서가 유휴상태일 때 둘 이상의 작업이 프로세서를 전환하여 사용할 수 있도록 동작. 마치 많은 사용자의 프로그램이 거의 동시에 프로세서를 할당받는 ..