C++ 운영체제 스케쥴링 및 메모리 관리 - 보고서 첨부
- 최초 등록일
- 2017.03.21
- 최종 저작일
- 2017.03
- 압축파일
- 가격 2,500원
소개글
실행 결과 : https://youtu.be/WEd8V60sqFU
해당 자료는 소스코드와 제출용 보고서를 포함합니다.
______________________________________________________
파일 구성
- 소스코드
- 자료 정리 보고서
______________________________________________________
실행 과정
1. 파일 다운로드 후 압축 헤제
2. 새 프로젝트 - 프로젝트 생성 옵션에서 SDL 체크 해제
3. .cpp파일과 .h파일 각각 폴더에 맞게 추가 후 실행
______________________________________________________
먼저 프로그램이 해당 프로세스의 정보를 출력하고 다음화면이 실행되면 MAX_Thread 개수만큼(본 프로젝트에서는 15개로 설정) thread를 생성한다. 이 때 각각의 thread는 랜덤하게 부여된 우선순위(-15 ~ 15)를 가지고 대기상태로 생성되며 STL list를 사용하여 해당 우선순위 범위를 3등분 한 Low, Middle, High Queue를 생성한다.
이 후 각각의 우선순위 범위에 따라 알맞은 Queue에 저장하고 해당 thread의 생성번호, 핸들값, 아이디값, 우선순위 정보, 큐 정보, 생성시간, 작동시간, 종료시간을 출력한다. 이 때 높은 우선순위(ex. High)를 가진 thread가 낮은 우선순위(ex. Low)를 가진 thread보다 비교적 자주 출력되도록 각각의 Queue를 MultiThreading 기법으로 구성하고 해당 Queue에 따른 출력 빈도수를 Sleep 함수를 통해 제어한다.
이렇게 scheduling에 대한 실행이 끝나면 5개의 다른 thread를 생성하고 각각 20~24Mb까지의 크기(Size)와 주소를 할당한다. 이 후 임의로 생성한 Logical to Physical Table에 따라 해당 논리주소에 대한 실제 물리주소를 임의의 배열 MyMemory를 생성하여 Mutex방식으로 직접 구현한 MyMalloc 함수를 통해 해당 배열의 주소에 위치시킨다. 이렇게 메모리 할당 전과 후, 그리고 마지막으로 메모리 반환 후 실제 OS 메모리 상태를 출력하고 프로그램을 종료한다.
컴파일 실행환경
Microsoft visual c++, Visual studio 2015
참고 자료
없음