목록운영체제 (7)
Hyunebee

가상 메모리 OS의 메모리 관리 기술로 제공되는 실제보다 큰 가상의 메모리 물리적 주소가 아닌 논리적 주소를 가지는 메모리 메인 메모리의 제한된 용랑과 중첩 사용 문제 해결 가상 메모리가 가능한 이유 -> 프로세스의 일부만 물리적 메모리에 적재해도 실행 가능하다. 필요시 디스크(보조 저장 장치)에서 스왑인 아웃을 통해 교환 장점 -다중 프로그래밍으로 프로세서의 사용률과 처리율 향상 -> 응답시간과 반환시간이 향상되는건 아님 -물리적 메모리 크기 제한 없이 큰 프로그램 실행 가능 단점 -시스템 속도 저하 -요구된 페이지가 없을 때 처리방법이 필요하다. 가상 메모리 또한 물리적 주소와의 매핑이 필요하다 1. 요구 페이징 2. 요구 세그먼테이션 요구페이징 실행 중인 프로세스가 요구하는 페이지만 메인 메모리에 ..

메모리 관리 프로세스들을 위해 메모리를 할당하고 회수하고 보호하는 활동 여러 프로세스가 메모리 위에 올라갈 수 있게 운영체제가 메모리를 동적으로 세분화해줌 메모리 관리 정책 1. 적재 정책 - 디스크에서 메모리로 언제 들여올지 (When) -요구 적재 : 요청시 적재 -예상 적재 : 예측되는 참조 요청까지 미리 적재 2. 배치 정책 - 메모리의 어느 위치에 저장할지(Where) 3. 교체 정책 - 메모리가 충분하지 않을때 현재 메모리에서 제거할 부분을 결정(How) 메모리의 구조 1.논리적 관점 : 프로그래밍에 사용하는 공간 -> 덧셈하는 공간 / 배열공간 등등 2.물리적 관점 : 실제 데이터나 프로그램을 저장하는 공간 // 배열 공간의 인덱스 처음부터 끝까지 등등 이 두개의 논리적 메모리와 물리적 메모..
교착상태 다중 프로그래밍 시스템에서 프로세스가 일어나지 않을 사건을 시다리는 상태 교착상태의 필요조건 1.상호배제 한 순간에 한 프로세스만 점유할 수 잇는 자원이 있어야한다. 2.점유와대기 한 자원을 점유하고 다른 프로세스가 점유한 자원을 얻으려는 프로세스가 있어야한다. 3.비선점 점유된 자원을 강제로 뺏을 수 없음 4.환형대기 4가지의 조건이 모두 만족하면 필요충분 조건 하나라도 만족하지 않으면 절대 발생하지 않는다.

병행성(동시성)과 상호배제 상호배제 병행 프로세스의 공유 자원 동시 접근 금지 -> 공유자원은 한순간에 한 프로세스만 접근 이때 두 프로세스가 동시에 사용할 수 없는 프로그램 코드 영역을 임계 영역이라고 한다. 이러한 임계영역에 대한 해결책의 조건 - 상호배제 한 순간에는 한 프로세스만이 임계영역안으로 들어갈 수 있다. - 진행 임계 영역 안에 프로세스가 없다면 임계 영역에 들어갈려는 프로세스들이 존재해야 한다. - 한정대기 다른 프로세스가 임계 영역에 들어갈려면 영원히 기다리면 안됨 프로세스 동기화 협력하는 프로세스들 사이에 실행 순서를 보장 공유 데이터를 사용하는 프로세스를 조정하여 공유자원의 일관성을 보장 -> 상호배제는 보장하지만 교착상태나 기아상태가 발생할 수 있따. 경쟁상태 상호배제와 동기화가..

프로세스 스레드 -프로세스의 특성인 자원과 제어에서 저어만 분리한 실행 단위 -> code data files 같은 자원은 공유해 사용 -각 스레드는 별도의 실행 정보를 가지므로 별도의 스택이 필요함 -> 아래 그림에서 스택은 스레드마다 가지고 있음 -한 개의 프로세스는 한 개 이상의 스레드로 구성됨 -> 한 프로세스에서 나온 스레드들은 같은 주소공간을 공유 -병행 수행 -> 한프로세스 내의 스레드를 하나의 목적을 위해 사용 -병렬 수행 가능 -> 한 프로세스의 스레드를 다른 프로세서에서 사용 but 멀티프로세서여야함 -경량 프로세스라고도 부른다. 싱글 스레드와 멀티 스레드로 구분 여기서 우리는 병행과 병렬을 구별할 줄 알아야한다. 병행 프로세스란 - 동시에 실행되는 것 처럼 보이는것 - 운영체제가 프로..

프로세스 Stack : 임시데이터(지역변수, 함수의 매개변수)등이 들어감 data : 변수/초기화된 데이터 , 전역변수, 문자열 상수 heap : 코드에서 동적으로 만들어지는 데이터 - 자바에서는 이렇게 생성된 동적데이터를 사용하지 않는다면 GC에서 자동으로 메모리 해제 text : 컴파일한 코드 CPU에서 프로세스를 만드려면 메모리를 잡아야하고 그 메모리안 Kernel 영역에 PCB블럭이 있고 PCB블럭의 메모리에서 위의 그림같은 데이터들이 들어간다. 문맥교환(Context switch) 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스를 보관 하고 새로운 프로세스의 상태를 적재하는 과정 이러한 상태는 PCB에 저장이된다. PCB에는 프로세스..

운영체제(OS) 1. 응용 프로그램과 하드웨어 간의 중재자 역할 2. 하드웨어를 효율적으로 관리 3. 응용프로그램의 실행을 제어 커널 : 메모리에 상주하는 운영체제의 부분 운영체제 구성(하드웨어↔운영체제↔응용프로그램↔사용자) OS와 응용프로그램은 어떻게 통신을할까? -> 시스템 콜 시스템 콜(System Call) - 커널모드로 실행 운영체제(kernel)가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공한다. 커널이 제공하는 서비스에 대한 Programming Interface이며 사용자 프로세스에게 커널서비스를 제공하는 메커니즘이 다. 시스템 호출의 종류 호출서비스 설명 프로세스 제어 적재와 실행, 프로세스의 생성과 종료, 메모리의 할당과 해제 파일 조작 파일의 생성과 삭..