
操作系统
文章平均质量分 69
Violent-Ayang
人中龙凤尚且举步维艰
展开
-
多线程打印 - 互斥量的使用
题目要求在任务一的基础上进一步,如果我们不想A 和B 的行交替出现,即无论该程序运行多少次都是先连续打印三行A 再连续打印三行B,或者反之,连续打印三行B 再连续打印三行A也可以,该如何实现?(提示,使用mutex)原创 2022-11-28 10:50:47 · 485 阅读 · 0 评论 -
多线程打印
多线程打印Main 线程创建两个子线程A 和B,子线程A 循环3 次,每次sleep 一秒后打印一行十个A 字符原创 2022-11-28 10:42:59 · 636 阅读 · 0 评论 -
exec函数家族
该实验分别通过exec函数家族的不得低于2个函数列出当前文件夹下的所有目录和文件,并在调用exec函数前后分别输出一段话作为主进程运行标志。原创 2022-11-28 14:05:25 · 185 阅读 · 0 评论 -
获取进程的退出状态
题目要求获取进程的退出状态,该实验有两个进程,子进程输出pid 后,用exit函数结束,参数为3。相关知识:进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。原创 2022-11-28 10:17:57 · 336 阅读 · 0 评论 -
磁盘调度算法例题解析以及C语言实现
如果当前停留在第122号磁道上,接下来8个磁道按顺序分别是 120,98,4,51,180,195,140,23。请写出最短寻道时间优先和扫描算 法的访问顺序以及各自的平均寻道长度。原创 2022-11-22 07:20:30 · 2848 阅读 · 0 评论 -
进程调度例题解析
例题1 一个四道作业的操作系统中,设在一段时间内先后到达6个作业,它们的提交时间和运行时间见表例题2 一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的抢占式调度算法,如下表的作业序列(表中所有作业优先数即为进程优先数,数值越小优先级越高)例题3 有5个批处理作业(A,B,C,D,E)几乎同时到达一个计算中心,估计的运行时间分别为2,4,6,8,10分钟,它们的优先级数分别为1,2,3,4,5(1为最低优先级),对下面的每种调度算法,分别计算作业的平均周转时间原创 2022-11-19 19:07:54 · 8006 阅读 · 1 评论 -
页面置换算法
在进程中,我们不直接对物理地址进行操作,CPU在运行时,指定的地址要经过MMU转换后才能访问到真正的物理内存。地址转换的过程分为两部分,分段和分页。分段机制简单的来说是将进程的代码、数据、栈分在不同的虚拟地址段上,从而避免进程间的互相影响。分段之前的地址我们称之为逻辑地址,它有两部分组成,高位的段选择符和低位的段内偏移。在分段时先用段选择符在相应的段描述符表中找到段描述符,也就是某一个段的基地址,再加上段内偏移量就得到了对应的线性地址,线性地址也称之为虚拟地址。原创 2022-11-10 11:44:46 · 2712 阅读 · 0 评论 -
Linux命令汇总
压缩:tar jcvf FileName.tar.bz2 DirName。压缩:tar zcvf FileName.tar.gz DirName。压缩:tar Zcvf FileName.tar.Z DirName。打包:tar cvf FileName.tar DirName。解压:tar jxvf FileName.tar.bz2。解压:tar zxvf FileName.tar.gz。解压:tar jxvf FileName.tar.bz。解压:tar Zxvf FileName.tar.Z。原创 2022-11-05 11:34:21 · 854 阅读 · 0 评论 -
Linux安装配置node环境
Linux安装配置node环境。原创 2022-11-05 09:02:40 · 1067 阅读 · 0 评论 -
Linux中配置Maven环境
linux系统中配置maven环境原创 2022-11-04 23:05:51 · 1924 阅读 · 0 评论 -
Linux安装MySQL8.0并部署数据库教程
如何在linux系统中安装并部署mysql8.01.下载MySQL8安装包2.上传到服务器并解压3.创建数据文件夹以及用户组并赋予权限4.创建mysql_install_db安装文件初始化数据库5.修改my.cnf配置文件6.将mysql服务添加到系统服务之中7.配置全局的环境变量8.启动服务修改密码原创 2022-11-04 20:30:02 · 1569 阅读 · 0 评论 -
C语言中exit(0)和_exit(0)
该实验有两个程序,第一个程序用printf函数先后输出:hello ,\n和world两句话。用exit(0)结束进程。第二个程序输出的内容同第一个程序,用_exit(0)结束进程。原创 2022-10-28 13:29:00 · 700 阅读 · 0 评论 -
Linux父子进程全局变量与局部变量
验证fork后父子进程的全局数据区及栈内存的共享情况。具体描述:该实验创建2个进程,在父进程中创建一个全局变量,一个局部变量,并赋予初始值,用fork函数创建子进程。在子进程中对父进程的变量进行自加操作,并且输出变量值,后在父进程睡眠一段时间,再输出两个变量,观察子进程和父进程的输出变量值。原创 2022-10-28 13:15:18 · 2035 阅读 · 0 评论 -
UNIX BENCH详细安装及使用步骤
获取UNIX BENCH安装包Linux系统中直接使用wget即可,如若是Windows使用浏览器打开即可下载。对其进行解压进入工作目录由于我这里使用的是云服务器,无可视化页面,所以需将图形化页面关闭。进入Makefile将开启图形化页面功能注释掉=执行测试程序./Run如图所示即为正常开始运行,因测试数据及其多,测试时间会比较久,请耐心等待。出现下图所示即结束UnixBench是一款开源的测试 unix 系统基本性能的工具,是比较通用的测试VPS性能的工具。测试项目包括。原创 2022-10-27 16:17:26 · 3327 阅读 · 0 评论 -
CPU-Z的安装与使用
安装完成后直接打开即可使用。下载完后一路next即可。访问官网地址进行下载。建议下载中文的安装包。原创 2022-10-27 15:38:29 · 4335 阅读 · 1 评论 -
经典进程调度算法
介绍进程调度的概念,产生原因,讲解经典调度算法,以及这些算法的适用场景,优缺点等。重点剖析底层源码,linux0.11内核中schedule函数的实现原创 2022-10-27 15:33:11 · 1704 阅读 · 1 评论 -
分步编译链接代码
取决于命令说明,Shell 将命令输出写到屏幕或重定向到输出。Shell是用户与内核进行交互操作的一种接口,是Linux最重要的软件之一。此通信以交互的方式(来自键盘的输入立即操作)或作为一个 Shell脚本执行。Shell 和操作系统命令的序列,它存储在文件中。当登录到系统中时,系统定位要执行的 Shell 的名称。通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。Shell视命令行的第一个字(直到第一个空白空格)为命令,所有后继字为自变量。原创 2022-10-16 15:14:00 · 523 阅读 · 0 评论 -
PV操作原理解析
信号量是用于提供不同进程或者不同线程之间的同步手段的原语。信号量的数据结构是一个值和一个指针,指针指向等待该信号的下一个进程。信号量的值与相应的共享资源关联。当信号量中的值等于零时,该值表示当前可用资源的数量,当信号量的值小于零时,其绝对值表示当前阻塞队列中等待该进程的数量。信号量分为内核信号量和用户进程信号量。用户信号量中又分为System V信号量与Posix信号量。原创 2022-09-27 17:08:14 · 2076 阅读 · 0 评论 -
使用无名管道实现父子进程之间通信
通过pipe函数创建的这两个文件描述符 fd[0] 和 fd[1] 分别构成管道的两端,往 fd[1] 写入的数据可以从 fd[0] 读出。并且 fd[1] 一端只能进行写操作,fd[0] 一端只能进行读操作,不能反过来使用。pipe函数定义中的fd参数是一个大小为2的一个数组类型的指针。父进程通过write函数向fd[1]中写入消息,子进程通过read函数从fd[0]中读出消息并打印。编写代码,创建父子进程,使用无名管道,实现父进程给子进程发送消息。pipe函数可用于创建一个管道,以实现进程间的通信。原创 2022-09-23 15:34:11 · 1565 阅读 · 0 评论 -
父子进程编码
编码实现进程的创建,父进程输出进程号和“I am parent”提示信息;子进程输出子进程号和”I am son”提示信息。注意:要在父进程中sleep,等待子进程运行结束,防止父进程先于子进程退出。用到的函数:fork()、getpid()、getppid()原创 2022-09-15 08:40:54 · 480 阅读 · 0 评论 -
Linux系统中使用vim编写C语言代码实现过程
博主这里是阿里云CentOs7的系统,以下涉及到的yum软件安装命令,在其他Linux发行版上可能会有些许不同,望读者安装时注意,如出现命令无法识别请根据对应发行版自行百度。这样即是已安装好gcc,如未安装,请输入(不同发行版安装命令有差异)使用Linux进行C语言编译,首先确定系统中是否有gcc及vim。按ESC退出,然后:wq保存文件后进行编译。查看文件列表 输出的文件是a.out。按住shift+i进入编辑模式。接下来,检测是否安装vim。出现如下页面即已安装成功。如未安装,请安装vim。原创 2022-09-02 11:55:49 · 6628 阅读 · 0 评论 -
无需虚拟机直接在Windows中安装Ubuntu
在Windows搜索中(点击键盘上的Windows键即可搜索),搜索应用商店。然后打开刚才安装的Ubuntu,设置完账号密码。进入应用商店搜索Ubuntu,安装最上面的这个。少数电脑需要在开机时进入BIos模式开启虚拟化。打开控制面板,点击卸载程序。原创 2022-09-02 11:02:55 · 1629 阅读 · 0 评论