![](https://img-blog.csdnimg.cn/f9abf67cd66d480ea25505e67d7c88f0.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
操作系统
文章平均质量分 67
代码是在ubuntu18系统、virtualbox虚拟机下实现
子衿JDD
JDD学习备忘录
展开
-
【操作系统实验】---shell、多线程、信号量实验报告
实现shell程序,要求支持基本命令、重定向命令、管道命令、后台命令。基本操作的执行,如果是cd操作就直接退出,pwd操作使用getcwd获取路径,其他的命令使用execvp装入程序管道操作,左子树的输出重定向到管道的写端,右子树的输入重定向到管道的读端。重定向操作,第一个孩子的token为“”,打开文件写;为“>>”,打开文件追加。执行代码mian函数,循环接收输出的指令,根据指令构建语法树,exit指令就结束程序,cd指令就调用chdir,其他指令使用子进程调用exec,......原创 2022-06-12 08:00:00 · 922 阅读 · 0 评论 -
【操作系统 实验十】----串行查找和并行查找(生产者消费者问题变形)
文章目录1. 串行查找 job10/sfind.c题目测试代码2. 并行查找 job10/pfind.c1. 串行查找 job10/sfind.c题目程序 sfind 在文件或者目录中查找指定的字符串,并打印包含该字符串的行,示例如下:在文件 file.c 中查找字符串 main找到包含字符串 main 的行打印文件名和该行在目录 test 中查找字符串 main假设目录 test 下存在文件test/hello/hello.ctest/world/world.c对原创 2022-05-24 17:54:22 · 753 阅读 · 0 评论 -
【操作系统 实验九】----信号量实现线程同步
job9/pc.c使用信号量解决生产者、计算者、消费者问题功能与 job8/pc.c 相同job9/pp.c使用信号量实现 ping-pong 问题功能与 job8/pp.c 相同原创 2022-05-09 12:44:35 · 705 阅读 · 0 评论 -
【操作系统 实验八】----线程互斥、条件变量
job8/pc.c: 使用条件变量解决生产者、计算者、消费者问题题目系统中有3个线程:生产者、计算者、消费者系统中有2个容量为4的缓冲区:buffer1、buffer2生产者生产’a’、‘b’、‘c’、‘d’、‘e’、‘f’、‘g’、'h’八个字符放入到buffer1打印生产的字符计算者从buffer1取出字符将小写字符转换为大写字符,按照 input:OUTPUT 的格式打印放入到buffer2消费者从buffer2取出字符打印取出的字符程序输出结果(实际原创 2022-05-08 18:54:02 · 740 阅读 · 0 评论 -
【操作系统 实验七】--- 多线程
job7/pi1.c: 使用2个线程根据莱布尼兹级数计算PI莱布尼兹级数公式: 1 - 1/3 + 1/5 - 1/7 + 1/9 - … = PI/4主线程创建1个辅助线程主线程计算级数的前半部分辅助线程计算级数的后半部分主线程等待辅助线程运行結束后,将前半部分和后半部分相加END取9999job7/pi2.c: 使用N个线程根据莱布尼兹级数计算PI与上一题类似,但本题更加通用化,能适应N个核心主线程创建N个辅助线程每个辅助线程计算一部分任务,并将结果返回主线程等待N个辅助线原创 2022-04-30 16:52:14 · 1409 阅读 · 0 评论 -
【操作系统 实验五】--- 重定向输入、输出、追加
文章目录题目踩坑测试代码题目job5/sh2.c实现shell程序,要求在第1版的基础上,增加文件重定向功能重定向输入重定向输出重定向追加踩坑[bug 1] 不能用gets()获取字符串 line ,因为它在C++11里面不安全,要用fgets(line,sizeof(line),stdin); //stdin是标准输入[bug 2] exit 不能跳出,需要已经输入的指令数+1,才能退出因为fgets()输入没有过滤’\n’,split分割时有’\n’在最后一个字符串里面。ls原创 2022-04-12 09:59:09 · 1633 阅读 · 0 评论 -
【操作系统 实验四】--- 文件描述符 myls.c mytree.c
job4/myls.cmyls.c的功能与系统ls程序相同opendir readdir closedir在命令行中输入 man opendir 获取帮助列出指定目录下的文件,例子如下:$ ./myls job4/testabc列出当前目录下的文件,例子如下:$ cd job4/test$ ./mylsabcjob4/mytree.cmytree.c的功能与系统tree程序相同使用空格作为缩进,表示层次$ ./mytree job4/testtestabxyz原创 2022-03-24 13:59:52 · 1819 阅读 · 0 评论 -
【操作系统 实验三】---文件操作 myecho.c mycat.c mycp.c mysys.c sh1.c
文件读写编程题目job3/myecho.cmyecho.c的功能与系统echo程序相同接受命令行参数,并将参数打印出来,例子如下:$ ./myecho xx$ ./myecho a b ca b c[解]mkdir job3 //新建文件夹cd job3 //打开文件夹touch myecho.c //新建文件vim myecho.c //编辑文件:wq 保存退出cc myecho.c //编译job3/mycat.cmycat.c的功能与系统cat程序相同原创 2022-03-13 16:24:56 · 3384 阅读 · 0 评论 -
【git】将Linux里的文件上传 到gitee仓库
将Linux里的文件上传 到gitee仓库安装虚拟机和Linux系统(比如virtualBox平台 ----Ubuntu系统)注册gitee在gitee上创建仓库进入linux系统里可执行以下操作,上传新建的文件或删除文件新建文件vi hello.cgit add hello.cgit commit -m ‘add hello.c’git push删除文件rm hello.cgit rm hello.cgit commit -m ‘del hello.c’原创 2022-03-07 14:58:11 · 3028 阅读 · 0 评论 -
【操作系统 实验一】---linux基础指令应用
实验目标:实验步骤创建 job1目录切换到 job1 目录创建 dir dir.bak 目录创建 hello.bak hello.c 文件编辑 hello.bak 文件,并保存按esc然后输入:wq复制 hello.bak 到 hello.c切换到 dir.bak , 创建 a b c world.c编辑 world.c , 并保存按esc然后输入:wq切换到 job1 目录,复制dir.bak 到dir在dir原创 2022-03-01 18:57:12 · 706 阅读 · 2 评论 -
操作系统作业三:PV操作
文章目录作业1作业2作业1题目:桌上有一空盘,只允许存放一个水果。爸爸专向盘中放橙子,妈妈专向盘中放苹果,女儿专等吃橙子,儿子专等吃苹果。规定当盘空时一次只能放一个水果供吃者自用,请用PV操作实现爸爸、妈妈、女儿、儿子四个并发进程的同步。【答】设计四个信号量metux,empty、orange、apple;metux表示:爸爸、妈妈、儿子和女儿进程对盘子的互斥使用;empty表示:盘子是否为空;apple表示:是否可以取苹果;orange表示:是否可以取橙子。伪代码描述如下:sema原创 2022-05-09 21:37:34 · 1982 阅读 · 1 评论 -
操作系统作业二:栈、堆、数据区、代码段是否可读?可执行?可写?
课堂作业实现一程序,分别在Windows、linux操作系统下验证:栈、堆、数据区是否可读可写不可执行代码段是否可读可执行不可写原创 2022-04-21 21:02:46 · 1677 阅读 · 2 评论 -
操作系统作业一:探测进程中各段相对位置
课堂作业一般操作系统中,进程的每个段内部地址均连续,但段与段的相对次序可能不同。用C/C++语言写一个小程序,探测一个操作系统中进程的各段的相对位置(输出次序即可)原创 2022-04-12 20:36:20 · 1729 阅读 · 0 评论