
操作系统学习之路
学习操作系统过程中一些问题以及学习动态
苏米素
这个作者很懒,什么都没留下…
展开
-
在虚拟机中安装Ubuntu 18.04
链接: 在虚拟机中安装Ubuntu 18.04.原创 2020-06-15 16:44:00 · 269 阅读 · 0 评论 -
操作系统字符设备驱动---实现聊天应用程序
文件夹结构图如下:其中只有chardev.c和chat.c和do.sh和del.sh和Makefile是自行编写程序.== chardev.c 字符驱动程序==//chardev.c 字符驱动程序#include <linux/init.h>#include <linux/module.h>#include <linux/cdev.h>#include <linux/fs.h>#include <linux/uacces...原创 2020-05-22 15:10:28 · 4750 阅读 · 14 评论 -
linux设备驱动出错:gcc: error:unrecognized command line option '-fstack-protector-strong'
Ubuntu18.04.4,gcc版本为4.8.5 环境下进行Linux设备驱动出错如下:解决方案!!!按照下述步骤进入 /usr/src/linux-headers-5.3.0-510-generic找到Makefile并修改里面的内容,注意打开Makefile要用管理员权限打开。step1:进入 /usr/src/linux-headers-5.3.0-510-genericstep2:把框框内的语句用 “#” 注释掉step3:再测试一下make成功没,如果没成功,网上大多数都说g原创 2020-05-14 14:22:18 · 13697 阅读 · 3 评论 -
操作系统进程调度(动态优先级调度算法---ready、waiting、running三态)
运行环境为 Ubuntu,Linux系统,C语言本算法思想:首先创建进程的时候,就按照优先级高低把进程插入正确的顺序中。之后的调度:运行完一个进程时间片,重新衡量它的优先级并插入到合适的地方。一开始老师给的参考代码是只有ready和running态(最后面也贴出了此代码);老师做实验让我们加入waiting态,最好的方法应该是要把waiting态单独放在一个队列中,我当时觉得太麻烦了,就想直接放在末尾,奈何我想的太简单了,直接放末尾也超级麻烦,打算后期有时间写一下把waiting态单独放在队列中的代原创 2020-05-10 12:00:28 · 4382 阅读 · 0 评论 -
页面置换算法----LRU(淘汰最近最久未使用过的页)
Linux—Ubuntu环境下C语言实现/************************************************** page.c-------------------------------------------------- 存储管理:页面置换算法模拟程序 给出访问串,计算LRU算法下的缺页率--------------------------...原创 2020-05-07 11:22:28 · 2819 阅读 · 2 评论 -
生产者消费者问题3 ---- 经典同步互斥 (3个文件,涉及共享内存,每个消费者可以拿多次,如果一次没拿到全部想要的,还可以等待生产者生产之后又去拿)
生产者消费者问题,三个.c文件实现procon.c producer.c consumer.c还有有一篇我写的兄弟文章,两者相似,只是消费者有点不同-----------链接: 生产者消费者问题2 ---- 经典同步互斥 (3个文件,涉及共享内存,每个消费者只能拿一次,如果一次没拿到全部想要的,没有第二次机会拿).通过procon.c来控制producer.c和consum...原创 2020-04-26 18:21:44 · 273 阅读 · 1 评论 -
生产者消费者问题2 ---- 经典同步互斥 (3个文件,涉及共享内存,每个消费者只能拿一次,如果一次没拿到全部想要的,没有第二次机会拿)
生产者消费者问题,三个.c文件实现procon.c producer.c consumer.c通过procon.c来控制producer.c和consumer.c的运行。下图是我整个文件里面的文件,方便大家更能理解。//procon.c#include <stdio.h>#include <stdlib.h>#include <st...原创 2020-04-26 17:48:16 · 502 阅读 · 1 评论 -
生产者消费者问题1 ---- 经典同步互斥 (仅一个文件,不涉及共享内存)
生产者消费者问题:多个生产者,多个消费者进行同步互斥。把生产信息和消费信息写入.csv文件记录。//pc.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <pthread.h>#include <...原创 2020-04-17 16:51:18 · 285 阅读 · 0 评论 -
关于linuxC语言中创建进程,利用execlp函数执行.c程序问题
关于linuxC语言中创建进程,利用execlp函数执行.c程序问题对于一个小白来说,这个系统调用真的太难了,完全摸不着头脑啊,一搜execlp函数,全是执行的命令,什么传参硬是没懂。不过说到底,还是自己C语言的基础太薄弱了,对于int main()这样一个最常用的函数都不了解,惭愧惭愧。一般我们很少给int main()函数传递参数,以至于我都不知道int main(int argv,int...原创 2020-04-14 20:24:22 · 1517 阅读 · 0 评论 -
经典圣诞老人题----同步与互斥
题目详情如下:1. 睡在北极商店中的圣诞老人只能被下述情形之一唤醒:(1)所有9头驯鹿都从南太平洋度假归来。(2)有些小精灵在制作玩具时遇到了麻烦:为了让圣诞老人们多休息一会儿,只能在3个小精灵遇到麻烦时才能叫醒圣诞老人。在这3个小精灵解决它们的问题时,其他想要找圣诞老人的小精灵只能等这3个小精灵返回。如果圣诞老人醒来后发现3个小精灵及最后一头从热带度假归来的驯鹿在店门口等着,那么圣诞老人就...原创 2020-04-04 22:19:18 · 853 阅读 · 1 评论 -
shell命令实现存储和查询学生成绩,并提供菜单显示选项。 同时可以根据用户输入的选项执行查询、添加等功能。
#退出程序函数quit(){ clear exit}#增加记录函数add(){ clear echo "Enter name and score of a record." echo -e "\c" if [ ! -f ./record ]; then touch record fi read NEWNAME #关于输出重定向,>代表覆...原创 2020-03-27 19:04:30 · 1465 阅读 · 0 评论 -
shell命令实现测试一个指定程序的执行时间
t=$(date +%s.%N) #当前时间 echo "当前时间为: $t" ############################################################ echo "计算指定程序的执行时间" echo "Please Enter a command: " read $command start=$(date...原创 2020-03-27 19:03:06 · 1622 阅读 · 2 评论 -
shell命令实现文件的备份和恢复
#!/bin/bash #备份目录函数 backupdir() { dirtest echo "Backupping..." echo $DIRECTORY #mkdir $newdir #把DIRECTORY备份成为backup.tar.gz放在/tmp目录下 tar -zcvf /tmp/backup.tar.gz $DIRECTORY ...原创 2020-03-27 18:54:28 · 2320 阅读 · 0 评论 -
操作系统精髓与原理--复习题答案整理
学习一章便更新一章,亲自敲一遍助于记忆。操作系统精髓与原理--复习题答案第一章 计算机系统概述操作系统概述第一章 计算机系统概述1.1 列出并简要地定义计算机的四个组成部分。主存储器:存储数据和程序;算术逻辑单元:能处理二进制数据;控制单元:解读存储器中的指令并且使他们得到执行;输入/输出设备:由控制单元管理。1.2 定义处理器寄存器的两种主要类别。用户可见寄存器:优先使用这些寄...原创 2020-03-16 13:53:15 · 8234 阅读 · 0 评论 -
Linux进程调度原理
Linux进程调度的目标1.高效性:高效意味着在相同的时间下要完成更多的任务。调度程序会被频繁的执行,所以调度程序要尽可能的高效;2.加强交互性能:在系统相当的负载下,也要保证系统的响应时间;3.保证公平和避免饥渴;4.SMP调度:调度程序必须支持多处理系统;5.软实时调度:系统必须有效的调用实时进程,但不保证一定满足其要求;Linux进程优先级进程提供了两种优先级,一种是普通的进程...转载 2020-03-04 12:18:52 · 237 阅读 · 0 评论