电子科技大学---操作系统课程实验(二)

HDU杭电操作系统实验报告-操作系统课程设计-咸鱼的自留地 杭州电子科技大学操作系统之简单文件系统 杭州电子科技大学操作系统课程设计:Linux内核编译、内核模块、进程管理、简单的文件系统实现 阅读详情

前一篇文章贴出的是基本的实验思路以及要求,接下来我们用代码具体实现整个进程管理过程。 由于本人比较喜欢用java开发,并且java写起来比c快多了,于是就写了一个java版的。思想都是一样的,语言不重要

系统目录:

整个系统主要是三个java代码文件:

![这里写图片描述](https://img-blog.youkuaiyun.com/20170514183939198?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3ByaW5nY29kZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

代码分析

1.Main.java

public class Main {
    private static Scanner scanner =new Scanner(System.in);
    private static String command=null;
    public static void main(String args[]){
        command=scanner.nextLine();
        command=command.trim();
        while(command!=""){
            TestShell.exeCommand(command);
            command=scanner.nextLine();
            command=command.trim();


        }
    }
}

主函数中没有什么,就是对控制面板输入的命令进行处理

2.PCB.java

PCB(process control block),进程控制块,是我们学习操作系统后遇到的第一个数据结构描述,它是对系统的进程进行管理的重要依据,和进程管理相关的操作无一不用到PCB中的内容。一般情况下,PCB中包含以下内容:
(1)进程标识符(内部,外部)
(2)处理机的信息(通用寄存器,指令计数器,PSW,用户的栈指针)。
(3)进程调度信息(进程状态,进程的优先级,进程调度所需的其它信息,事件)
(4)进程控制信息(程序的数据的地址,资源清单,进程同步和通信机制,链接指针)

由于这个试验中用不到这么多信息,所以我们的代码中也就没有写这么多。主要包括:进程名,进程ID,父进程,优先级,子进程等的一些简要信息

    private int pid;//正在运行的process id
    private int prioirty;
    private String name;
    private String childName=null;
    private Map<String ,Integer> requestRes=new HashMap<>();
    private int parentId;
    private int childId;
    private int state;

其中requestRes表示进程请求的资源,初始化的时候都是0,表示进程刚刚创建,还没有请求资源

此外我们在定义几个表示进程状态的常量:

    public static final int STATE_RUNNING=0;
    public static final int STATE_BLOCKED=1;
    public static final int STATE_READY=2;
    public static final int STATE_DESTORYED=3;

3.Log.java
由于需要输出一些文字,包括一些必要的进程信息,还有命令处理的出错信息,其实就是嫌弃System.out.println(“”)太长了,这里我们写一个工具类,便于开发

public class Log {
    public static void e(String info){
 
杭州电子科技大学操作系统课程设计:简单文件系统的实现 本实验的代码地址:https://github.com/yjc567/HDU_OS_Assignment_2017_SimpleFileSystem,如有需要,欢迎自行取用,但是不建议你拿着这个代码去验收,自己的知识永远是自己的,好好学习才是王道! emmmm想写一个操作系统的课程设计说明,因为自己写的时候也遇到了好多问题,外加感觉对实验指导书的说明有些疑问,觉得写出来可以给别人看看。但是感觉写出来 阅读详情

相关推荐

西安电子科技大学操作系统深入教学课件与实验指导

操作系统是计算机系统的核心软件,负责管理计算机硬件与软件资源,为应用软件提供支持,它涉及用户接口、内存管理、文件系统、设备驱动等众多方面。操作系统的定义是:它是计算机硬件与应用程序之间的接口,是管理和控制计算机资源的软件系统。其核心功能包括处理器管理、内存管理、设备管理和文件系统管理。进程是操作系统中的一个核心概念,它代表了一个在内存中运行的程序的实例,包含了一组指令、数据以及它们的运行状态。每个进程都有自己的地址空间、系统资源的分配和进程控制块(PCB)。

weixin_42453228的博客 644

操作系统实验源码项目实战

在探讨操作系统实验的核心内容之前,理解实验的目标和基本流程是至关重要的。本章将简要介绍操作系统实验的目的、意义以及实验中将要使用的工具和方法,为后面深入的章节内容打下坚实的基础。操作系统实验不仅是对操作系统理论的验证和实践,也是对计算机系统深层次理解的开始。通过这些实验,学习者能够更直观地观察操作系统的工作原理,掌握系统资源管理和进程调度等核心概念。接下来,我们将通过介绍实验中常见的操作系统特性,包括进程管理、线程同步、进程间通信以及C语言在操作系统实验中的应用等,来逐步展开我们的学习之旅。

weixin_42097508的博客 930

电子科技大学操作系统课程PPT精讲

操作系统是计算机硬件与软件资源的管理者,也是用户与计算机之间沟通的桥梁。其核心功能包括处理程序执行、管理用户任务、控制数据存取等,确保计算机系统的高效、稳定运行。操作系统定义为一组能够管理计算机硬件资源的系统软件。其功能不仅限于资源管理,还涉及内存管理、文件系统管理、设备管理以及安全保护等多个方面。它通过提供接口,使得应用程序能够更好地利用计算机资源,同时为用户提供方便的操作环境。随着技术的发展,现代操作系统还强调了多媒体处理、网络支持和图形用户界面等高级功能。

weixin_35995661的博客 433

操作系统课程设计:理论与实践(电子科技大学版)

操作系统是计算机系统的核心,它管理硬件资源并提供用户接口。进程管理是操作系统中一个重要的概念,涉及到进程创建、调度、同步和通信等方面。本章将对操作系统的基本功能进行概述,并详细介绍进程管理和调度的基本原理。

weixin_36197669的博客 1075

杭电操作系统实验

实现两个模块,第一个模块列出系统中所有内核线程的程序名、PID、进程状态、进程优先级、父进程的PID。通过`for_each_process`来遍历进程列表;用`task_struct->mm`判断是否为内核线程;用`get_task_parent`来获得父进程; 第二个模块输入一PID输出该进程的家族信息、包括父进程、兄弟进程和子进程的程序名、PID、进程状态。

电子科技大学C++码图代码

C++

电子科技大学操作系统实验1-进程与资源管理实验.pdf

实验结果:全部通过所给的10个测试序列 实验内容:在实验室提供的软硬件环境中,设计并实现一个基本的进程与资源管理器。 该管理器能够完成进程的控制,如进程创建与撤销、进程的状态转换;能够基于 优先级调度算法完成进程的调度,模拟 时钟中断,在同优先级进程中采用时间片 轮转调度算法进行调度;能够完成资源的分配与释放,并完成进程之间的同步。 该管理器同时也能完成从用户终端或 者指定文件读取用户命令,通过 Test shell 模块完成对用户命令的解释,将用户命令转化为对进程与资源控制的具体操作, 并将执行结果输出到终端或指定文件中。

操作系统实验,进程控制

操作系统实验,压缩包中包括Linux和windows进程控制源代码及实验报告。 进程控制实验题目: 设计并实现Unix的“time”命令。“mytime”命令通过命令行参数接受要运行的程序,创建一个独立的进程来运行该程序,并记录程序运行的时间。 在Windows下实现: • 使用CreateProcess()来创建进程 • 使用WaitForSingleObject()在“mytime”命令和新创建的进程之间同步 • 调用GetSystemTime()来获取时间 在Linux下实现: • 使用fork()/execv()来创建进程运行程序 • 使用wait()等待新创建的进程结束 • 调用gettimeofday()来获取时间 mytime的用法: $ mytime.exe program1

Operator_System:杭电操作系统实验HDU操作系统实验

杭州电子科技大学操作系统课程设计 类别:[“项目”] 标签:[“ OS”,“ Lab”,“ HDU”,“ project”] 关键字:[“杭电”,“杭州电子科技大学”,“ HDU”,“操作系统实验”,“操作系统”,“实验”,“ Linux”,“内核编译”,“进程管理”] 别名:[“杭电操作系统实验”,“ HDU操作系统实验”,“ HDU操作系统”] 实验列表 HDU-OS-Lab1-Linux内核编译及添加系统调用 添加一个系统调用,实现对指定进程的nice值的修改或读取功能,并返回进程最新的nice值和优先级prio。 视频教程地址: : 原始: : HDU-OS-Lab2-Linux内核模块编程 Linux内核采用了整体结构,上一个实验体会了编译内核时间的延长长与繁杂,一步错就要重新编译,这虽然提高了效率,但同时也让后续的维护变得困难,在这个基础上,Linux内核更新了动态

HDU 杭电操作系统实验 (通过验收)

包含实验内容:对应实验要求上的1/2/3/5实验,分别为setName/setNice,petree输出进程,模拟shell,进程通信,文件系统。包含全部实验源代码和详尽的word实验报告。同时包含在线PTA编程题目:进程模拟,模拟进程调度,银行家算法。 所有的代码都已通过调试。

MacOS M芯片部署ComfyUI:从环境排雷到插件生态一站式指南

本文为MacOS M系列芯片用户提供了一份详尽的ComfyUI部署指南。文章深入剖析了因架构差异导致的常见安装报错根源,并给出了基于MPS后端的正确PyTorch安装命令。从创建纯净Python虚拟环境、分步安装依赖,到验证GPU加速,手把手指导完成部署。同时,还推荐了包括管理器、汉化在内的必备插件,以完善使用生态,帮助用户一站式解决从环境搭建到效率提升的所有问题。

weixin_29261711的博客 993

Python广度优先搜索BFS - 蓝桥13届省赛污染海域

请问这片N * M海域中有几块是没被污染的独立海域(没被污染的独立海域是指该块海域上下左右被已污染的海域包围,且N * M以外的海域都为已被污染的海域)有一片海域划分为N * M个方格,其中有些海域已被污染(用0表示),有些海域没被污染(用1表示)。第二行开始输入N行,每行M个数字(数字只能为1或者0,1表示没被污染的海域,0表示已被污染的海域)这块4 * 5的海域,有3块海域(绿色)没被污染,因为每一块的上下左右都被污染的海域包围。输出一个整数,表示N * M的海域中有几块是没被污染的独立海域。

m0_69865359的博客 264

智能体在车联网中的应用:第19天 智能体理论与初步实践 D30:阶段小结——在SUMO中使用TraCI控制预编程智能体

本文介绍了如何将强化学习从算法仿真迁移到交通系统实践,重点讲解了SUMO微观交通仿真平台与TraCI实时控制接口的架构。通过构建一个预编程驾驶智能体,演示了车辆从起点到目标点的导航控制。文章详细解析了TraCI的双向通信机制和事件驱动模型,对比了其与传统RL环境的差异,并提供了完整的Python实现框架,包括路网配置、车辆控制和基于向量场的导航逻辑。该实践为后续开发高级学习型交通智能体奠定了基础。

IT深耕十余载,大道之简 1478

FOFA奇技淫巧:从搜索语法到实战场景的深度挖掘

本文深入探讨了FOFA搜索语法在网络空间测绘中的高效应用,从基础语法到实战场景的深度挖掘。通过渗透测试、威胁狩猎、资产发现等实际案例,展示了如何利用FOFA精准定位目标系统、识别蜜罐、追踪威胁,并提供了合规使用指南和性能优化技巧,助力安全工作者提升效率。

weixin_32428571的博客 235

MATLAB演示元胞自动机算法

一、元胞自动机理论 元胞自动机与格子理论是一个非常好的模型,许多复杂的问题都可以通过它来建立模型,下面就简要介绍一下。 元胞自动机 实质上是定义在一个具有离散、有限状态的元胞组成的元胞空间上,并按照一定的局部规则,在离散的时间维度上演化的动力学系统。 元胞 元胞又可称为单元、细胞,是元胞自动机的最基本的组成部分。 元胞具有以下特点: 元胞自动机最基本的单元。 元胞有记忆贮存状态的功...

frange zone 2万+

STM32 HAL库定时器中断实现步进电机S型加减速控制与脉冲精准计数

本文详细介绍了如何使用STM32 HAL库定时器中断实现步进电机的S型加减速控制与脉冲精准计数。通过CubeMX配置定时器、计算PSC和ARR值,并结合S型曲线算法,实现平滑启停和精准定位。文章还提供了脉冲计数方案和常见问题排查技巧,帮助开发者优化步进电机控制性能。

weixin_29189363的博客 373

卡尔曼滤波五步拆解:用Excel手推姿态解算全过程

本文通过Excel手推演示,详细拆解了卡尔曼滤波在姿态解算中的五步核心流程。文章以融合陀螺仪与加速度计数据估算角度为例,从状态预测、协方差更新到增益计算,逐步展示如何将抽象的矩阵运算转化为可视化的表格计算,帮助读者直观理解滤波器的“预测-修正”机制,并为算法实现与参数调优提供清晰指导。

hhh00的博客 978

某Z节验证码

某Z节验证码、captchaBody、滑块、旋转、空间推理

mamenqi_csdn的博客 770

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 电子科技大学---操作系统课程实验(一)
下一篇: 关于开平方方法的研究
木槿花雨
博客等级 码龄11年 20粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值