4.1:1:对于顺序执行的程序来说,例如计算个人纳税申报表的程序 2:另一个例子是"shell"程序,如C-shell或Korn shell。此类程序必须密切监视其自己的工作空间,例如打开的文件、环境变量和当前工作目录。 4.2:当有一个线程发生缺页异常时,可以切换另一个线程使用处理器,这对于多线程来说很容易实现,但是对于单线程来说只有等待处理器处…
项目1:编写shell写这个项目人属实是麻了,不过又学到了好多字符串,系统函数调用,gdb调试等知识。对于shell来说最重要的一个系统调用是evecvp(char *command, char *params[])。这个函数有一个非常重要的一个点,第二个参数是变长指针数组,由于读取命令行的一行字符串,需要将这个字符串手动分割,参考一下官方源码采用…
编程题: 3.12:通过kill父进程pid可以解决僵尸进程问题,操作流程如图: #include <iostream> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> using namespace std; int …
文章来源:《经济学人》 Aug 21th 2021 期 India's humiliation in Afghanistan is a victory for Pakistan, but a costly one.humiliation:羞辱,耻辱 印度在阿富汗的屈辱对巴基斯坦来说是一场胜利,但代价高昂。 It was only a questio…
3.1:短期(CPU 调度程序)— 从内存中选择准备执行的作业,并将 CPU 分配给它们。中期 — 特别与分时系统一起用作中间调度级别。实现交换方案以从内存中删除部分运行的程序,并在以后恢复它们以继续它们中断的位置。长期(作业计划程序)— 确定将哪些作业放入内存进行处理。主要区别在于它们的执行频率。短期内必须经常选择新的过程。长期使用的频率要低得多…
2.15编程题:通过标准I/O来实现文件的复制,代码如下(主要看注释部分): #include <iostream> #include <stdio.h> using namespace std; const int BUF_SIZE=3;//最小传输单元 int main(int argc,char**argv){ FIL…
2.1:操作系统提供的一类服务是在系统中并发运行的不同进程之间强制实施保护。仅允许进程访问与其地址空间关联的那些内存位置。此外,不允许进程损坏与其他用户关联的文件。在没有操作系统干预的情况下,进程也不允许直接访问设备。操作系统提供的第二类服务是提供基础硬件不直接支持的新功能,例如:虚拟内存和文件系统是操作系统提供的新服务。 2.2:1:寄存器中的传…
在最开始的学习过程中,发现没有CS的基础会觉得非常难受,不知道学的到底是个啥玩意,对于高级语言只会被语法,而不了解底层发生了什么,这种学习就像是建空中楼阁,意识到这个问题之后就着手去学基础知识了,感觉非常的nice (๑•̀ㅂ•́)و✧ CS:数据库,高级数据库,分布式系统,OS(基础已完成,实验陆续完成),数据结构(基础算法掌握,刷题学习高级算法…
1.1:a:1.系统资源(CPU,磁盘空间,内存,外围设备)访问冲突 2.一个用户的程序与数据被另一个用户复制或移动b:不一定,因为人类设计的任何保护方案都不可避免地会被人类破坏,而且方案越复杂,就越难以对其正确实施充满信心 1.2:a:CPU和内存资源,储存和网络带宽 b:内存和CPU资源 c:功耗和内存资源 1.3:分时系统:当其他用户很少时,…
对于书籍的配套资源及每一章的源码都上传到github上,又有经常被墙,整了一份放在百度网盘上了:源码,通过对源码的分析能够更好的了解内部问题。由于原书运行的平台在VS2015上,本机的平台是VS2019有一些兼容性和语法性的问题,把这些坑记录下来方便以后忘了可以重新解决。微软官方文档:DX12 下载完源代码后,可以通过打开.vcxproj获得项目的…