{"id":22876812,"url":"https://github.com/yuziquan/multilevelfeedbackqueuesimulation","last_synced_at":"2025-05-06T21:23:42.098Z","repository":{"id":109824961,"uuid":"141141150","full_name":"Yuziquan/MultilevelFeedbackQueueSimulation","owner":"Yuziquan","description":"A GUI application that simulates the process scheduling of multilevel feedback queues, implemented in Java's Swing, is displayed in the GUI interface.","archived":false,"fork":false,"pushed_at":"2018-10-20T03:00:56.000Z","size":489,"stargazers_count":14,"open_issues_count":0,"forks_count":5,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-31T03:05:27.920Z","etag":null,"topics":["swing-gui"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yuziquan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-16T13:17:41.000Z","updated_at":"2024-09-01T17:50:47.000Z","dependencies_parsed_at":"2023-05-26T18:15:44.882Z","dependency_job_id":null,"html_url":"https://github.com/Yuziquan/MultilevelFeedbackQueueSimulation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yuziquan%2FMultilevelFeedbackQueueSimulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yuziquan%2FMultilevelFeedbackQueueSimulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yuziquan%2FMultilevelFeedbackQueueSimulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yuziquan%2FMultilevelFeedbackQueueSimulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yuziquan","download_url":"https://codeload.github.com/Yuziquan/MultilevelFeedbackQueueSimulation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252770217,"owners_count":21801504,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["swing-gui"],"created_at":"2024-12-13T15:27:50.183Z","updated_at":"2025-05-06T21:23:42.092Z","avatar_url":"https://github.com/Yuziquan.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## MultilevelFeedbackQueueSimulation\n\n[![MultilevelFeedbackQueueSimulation](https://img.shields.io/badge/MultilevelFeedbackQueueSimulation-v1.0.0-brightgreen.svg)](\nhttps://github.com/Yuziquan/MultilevelFeedbackQueueSimulation)\n[![license](https://img.shields.io/packagist/l/doctrine/orm.svg)](https://github.com/Yuziquan/MultilevelFeedbackQueueSimulation/blob/master/LICENSE)\n\n\u003e 详情移步：https://blog.csdn.net/wuchangi/article/details/80432794\n\n### 一、项目功能\n\n**采用多级反馈队列调度算法进行进程调度的模拟。**\n\n\u003cbr/\u003e\n\n*具体要求如下：*\n\n\u003e * 每个进程对应一个 PCB。在 PCB 中包括进程标识符 pid、进程的状态标识 status、进程优先级 priority、表示进程生命周期的数据项 life（在实际系统中不包括该项）。\n\u003e * 创建进程时即创建一个 PCB，各个进程的 pid 都是唯一的，pid 是在 1 到 100 范围内的一个整数。\n\u003e * 可以创建一个下标为 1 到 100 的布尔数组， “假”表示下标对应的进程标识号是空闲的，“真”表示下标对应的进程标识号已分配给某个进程。\n\u003e * 进程状态 status 的取值为“就绪 ready”或“运行 run”，刚创建时，状态为“ready”。被进程调度程序选中后变为“run”。\n\u003e * 进程优先级 priority 是 0（最低） 到 49（最高） 范围内的一个随机整数。\n\u003e * 进程生命周期 life 是 1 到 5 范围内的一个随机整数。\n\u003e * 初始化时，创建 50 个就绪队列，各就绪队列的进程优先级 priority 分别是 0 到 49。\n\u003e * 为了模拟用户动态提交任务的过程，要求动态创建进程。进入进程调度循环后，每次按 ctrl+f 即动态创建一个进程，然后将该 PCB 插入就绪队列中。\n\u003e * 在进程调度循环中，每次选择优先级大的就绪进程来执行。将其状态从就绪变为运行，通过延时一段时间来模拟该进程执行一个时间片 的过程，然后优先级减半，生命周期减一。\n\u003e * 如果将该运行进程的生命周期不为 0，则重新把它变为就绪状态，插入就绪队列中；否则该进程执行完成，撤消其 PCB。以上为一次进程调度循环。\n\u003e * 设计图形用户界面 GUI，在窗口中显示该进程和其他所有进程的 PCB 内容。\n\n\u003cbr/\u003e\n\n***\n\n### 二、项目运行效果\n![1](https://github.com/Yuziquan/MultilevelFeedbackQueueSimulation/blob/master/Screenshots/MFQ.gif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuziquan%2Fmultilevelfeedbackqueuesimulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuziquan%2Fmultilevelfeedbackqueuesimulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuziquan%2Fmultilevelfeedbackqueuesimulation/lists"}