[운영체제] 페이징 메모리 관리
페이징 메모리 관리 1) 페이지와 프레임 프로세스의 주소 공간을 0번지부터 동일한 크기의 페이지로 나눔 물리 메모리 역시 페이지 크기로 나누어 프레임으로 부름 프로세스 구성 요소에 상관없이 고정 크기로 분할 페이지 크기는 운영체제마다 다르게 설정가능 페이지에 대응되는 프레임 번호를 저장하는 페이지 테이블 존재 2) 페이징 기법 프로세스 주소공간과 물리 메모리를 페이지 단위로 분할하고, 프로세스의 각 페이지를 물리 메모리의 프레임에 분산 할당하고 관리하는 기법 프로세스마다 페이지 테이블이 있으며 논리 주소의 물리 주소 변환은 MMU에 의해 이루어짐 물리 메모리의 빈 프레임 리스트 관리 필요 → 프레임 할당 알고리즘 내부 단편화가 발생하나 세그먼테이션보다 우수함 3) 페이징의 우수성 구현이 용이함 - 고정 ..
- Computer Science/Operating System
- · 2023. 7. 23.
[운영체제] 메모리 관리
메모리 계층 구조와 메모리 핵심 관리 1) 메모리 계층 구조 메모리는 컴퓨터 시스템 여러 곳에 계층적으로 존재 cpu 레지스터 - cpu 캐시 - 메인 메모리 - 보조기억장치 보조기억장치로 갈수록 용량 증가, 가격 저렴, 속도 저하가 있음 메모리 계층화의 목적 : CPU의 메모리 엑세스 시간을 줄여 빠른 프로그램 실행 CPU 레지스터 L1/L2 캐시 L3 캐시 메인 메모리 보조기억장치 용도 몇 개의 명령과 데이터 저장 한 코어에서 실행되는 명령과 데이터 저장 멀티 코어에 의해 공유, 명령과 데이터 저장 실행 중인 전체 프로세스들의 코드와 입출력 중인 파일 블록 저장 파일이나 데이터베이스, 메모리에 적재된 프로세스의 코드와 데이터 일시 저장 용량 바이트 단위 KB 단위 MB 단위 GB 단위 TB 단위 타입..
- Computer Science/Operating System
- · 2023. 7. 22.
[운영체제] 교착상태
교착상태 문제 제기 1) 실생활에서 발생하는 교착상태 밥을 먹기 위해 숟가락, 젓가락 모두 필요한 상황에서 한 사람은 숟가락을 다른 한 사람은 젓가락을 소유할 경우 숟가락이나 젓가락을 사용할 수 있을 때까지 대기 → 무한 대기 발생 교착 상태 : 자원을 소유한 채, 모두 상대방이 소유한 자원을 기다리면서 무한 대기 2) 식사하는 철학자 문제 5명의 철학자가 원탁에서 식사, 식사 시간은 서로 다름 자리마다 스파게티 1개와 양 옆에 포크가 있으며 각 철학자는 옆 철학자와 대화 불가능 식사를 하기 위해서는 양 손에 포크가 동시에 들려 있어야하며 왼쪽 포크를들고 다음 오른쪽 포크를 드는 순서 포크가 사용 중일 경우 대기 → 모든 철학자가 동시에 같이 자리에 앉아 식사를 할 경우 모두 왼쪽에 포크를 들어 무한 대..
- Computer Science/Operating System
- · 2023. 7. 17.
[운영체제] 스레드 동기화
스레드 동기화의 필요성 1) 동기화의 필요성 다수의 스레드가 동시에 공유 데이터 접근 → 공유데이터의 훼손 스레드 동기화 (thread synchronization) 공유데이터에 대한 다수의 스레드가 동시에 접근할 때 공유데이터가 훼손되는 문제의 해결책 공유데이터를 집근하고자 하는 다수의 스레드가 충돌없이 공유데이터에 접근하기 위해 상호 협력하는 것 2) 공유데이터 접근 문제의 해결책 여러 스레드가 공유 변수에 접근할 때, 공유 데이터 훼손 스레드 동기화 → 한 스레드가 공유데이터의 접근을 마칠 때까지 → 다른 스레드가 공유데이터를 접근하지 못하도록 제어 멀티 스레드의 경쟁 상황이 자주 발생 → 커널 안의 공유 데이터가 많아 자주 발생, 다중 코어에 더욱 조심해야함 3) 임계 구역과 상호 배제 #1 임계..
- Computer Science/Operating System
- · 2023. 7. 16.
First Come First Served (FCFS) 구현
First Come First Served #1 입력 첫째 줄 : 입력 받을 스레드 개수 각 스레드 별 입력 데이터 첫 번째 - 스레드 번호 두 번째 - 도착 시간 세 번째 - CPU 사용 시간 입력 예제 4 0 0 40 1 10 25 2 20 30 3 25 5 #2 출력 각 스레드의 대기시간과 완료시간 출력 출력 예제 0 40 30 65 45 95 70 100 #3 구현 #include #include #include using namespace std; struct thr { int num; // 스레드 번호 int start_t; // 스레드 도착 시간 int run; // CPU 사용시간 }; int n; // 입력받을 스레드 개수 저장 vector v; // 대기시간, 완료시간 저장 벡터 que..
- Computer Science/Operating System
- · 2023. 7. 11.
[운영체제] CPU 스케줄링
CPU 스케줄링 개요 1) 운영체제에서 일어나는 스케줄링 #1 자원에 대한 스케줄링 자원에 대한 경쟁이 있는 컴퓨터 시스템 여러 곳에서 발생 #2 다양한 스케줄링 작업 스케줄링 : 대기 중인 배치 작업 중 어떤 작업을 메모리에 적재할지 CPU 스케줄링 : 프로세스/스레드 중에 하난를 선택하여 CPU를 할당하는 스케줄링 디스크 스케줄링 : 디스크 장치 내에서 디스크 입출력 요청 중 하나를 선택 프린터 스케줄링 : 프린팅 작업 중 하나를 선택하여 프린터 할당 2) 다중프로그래밍과 스케줄링 CPU의 유휴시간을 줄이기 → CPU 활용률 향사어 작업 스케줄링과 CPU 스케줄링 도입 3) CPU burst I/O burst cpu burst : 프로그램 실행 중 cpu 연산이 연속적으로 실행하는 상황 I/O bur..
- Computer Science/Operating System
- · 2023. 7. 11.