프로세스를위한 운영 체제의 스케줄링 알고리즘 시뮬레이션 우선 순위 예약, 다중 레벨 스케줄링, ...


여기에 노출 된이 저장소는 실제로 과정 operating system 의 대학 프로젝트입니다.
Java 언어로 구현되었습니다.
클래스의 계층 구조 표시가 여기에 시연됩니다.
---- CPUSCHEDULER
----------- |
------------ SRC
---------------- |
------------------ 프로세스 // 각 프로세스의 데이터, 즉 시작 시간, 버스트 시간, ... ...
------------------ CPU // CPU 일정을 시뮬레이션합니다
------------------- 스케줄러 // 원시 방법 및 필드에 대한 초록 클래스
------------------ Sch_fcfs // 첫 번째 서빙 스케줄러가옵니다
------------------- Sch_SJF // 최단 작업 첫 번째 스케줄러 (선제적일 수 있음)
------------------ Sch_Priority // 우선 순위 스케줄러 (선제적일 수 있음)
------------------ Sch_rr // 라운드 로빈 스케줄러
------------------ Sch_Lottery // 복권 스케줄러
------------------ Sch_multilevel // 다중 레벨 스케줄러 (선제적일 수 있음)
----------------- FXMLDocumentController // Main GUI의 컨트롤러
----------------- SimulationController // 시뮬레이션 GUI 용 컨트롤러
----/
프로세스 : 프로세스가 실행 중이거나 대기 중이 두 상태가 다음과 같습니다.
CPU :
스케줄러 :
메모
시뮬레이션 시간 단위는 0.1이므로 버스트 시간 또는 지연 시간은 0.1의 배수 여야합니다.
각 라인의 순서는 프로세스 도착 순서를 지정합니다.
입력 형식은 각 줄에 대해 이와 같습니다 (버스트 시간, 지연 시간, 우선 순위, 레벨)
이 시뮬레이션의 최소 컨텍스트 스위치 기간은 0.4입니다.
이 시뮬레이션에서 라운드 로빈 스케줄러에 대한 최소 Quantum 기간은 시간 단위가 0.1이고 Quantum은 시간 단위보다 적을 수 없기 때문에 0.2입니다.
입력 타벨 :
| 프로세스 이름 | 도착 시간 | 시간을 실행하십시오 | 수준 |
|---|---|---|---|
| 1 | 0 | 5 | 1 |
| 2 | 1 | 8 | 2 |
| 3 | 3 | 7 | 2 |
| 4 | 4 | 3 | 1 |
| 5 | 5 | 3 | 1 |
| 6 | 8 | 11 | 2 |
| 7 | 15 | 3 | 1 |
| 8 | 25 | 4 | 1 |
예를 들어, 아래의 다중 레벨 비 배제 (l1 : fcfs, l2 fcfs)에서 예약을 예약하고 있습니다 (input.txt 파일)

먼저 프로세스 정보를 입력하고 Alghorithm 스케줄링을 선택한 다음 런 버튼을 누릅니다.

시뮬레이션이 끝날 때까지 기다립니다

이제 결과를 볼 수 있습니다

이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스 파일을 참조하십시오.