首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
CSAPP:lab7 shell
】的更多相关文章
【CSAPP】Shell Lab 实验笔记
shlab这节是要求写个支持任务(job)功能的简易shell,主要考察了linux信号机制的相关内容.难度上如果熟读了<CSAPP>的"异常控制流"一章,应该是可以不算困难的写出来.但如果读书不仔细,或者实践的时候忘记了部分细节,那就可能完全不知道怎么下手,或者得改bug改到吐了.我自己写了大概八个小时,其中仅一半的时间都在处理收到SIGTSTP后莫名卡死的问题,最后才发现是课本没看仔细,子进程停止后也会向父进程发送SIGCHLD. 在实验中我们需要实现job.fg.bg…
CSAPP shell Lab 详细解答
Shell Lab的任务为实现一个带有作业控制的简单Shell,需要对异常控制流特别是信号有比较好的理解才能完成.需要详细阅读CS:APP第八章异常控制流并理解所有例程. Slides下载:https://www.cs.cmu.edu/afs/cs/academic/class/15213-f21/www/schedule.html Lab主页:http://csapp.cs.cmu.edu/3e/labs.html 完整源码:https://github.com/zhangyi1357/CSA…
[CSAPP笔记][第九章虚拟存储器][吐血1500行]
9.虚拟存储器 为了更加有效地管理存储器且少出错,现代系统提供了对主存的抽象概念,叫做虚拟存储器(VM). 虚拟存储器是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完美交互. 为每个进程提供一个大的,一致的和 私有的地址空间. 提供了3个重要能力. 将主存看成磁盘地址空间的高速缓存. 只保留了活动区域,并根据需要在磁盘和主存间来回传送数据,高效使用主存. 为每个进程提供一致的地址空间 简化存储器管理 保护了每个进程的地址空间不被其他进程破坏. 程序员为什么要理解它? 虚拟存储器是中心的.…
Tinyshell: 一个简易的shell命令解释器
这是自己最近学习Linux系统编程之后写的一个练手的小程序,能很好地复习系统编程中的进程管理.信号.管道.文件等内容. 通过回顾写的过程中遇到的问题的形式记录程序的关键点,最后给出完整程序代码. 0. Tinyshell的功能 这个简易的shell解释器可以解析磁盘命令,支持管道和输入输出重定向,内置命令只实现了exit,可以判定后台执行命令(&),但未实现bg功能(后台命令直接返回). 1. shell是如何运行程序的 基本的模式就是主进程从键盘获取命令.解析命令,并fork出子进程执行相应的…
六星经典CSAPP笔记(1)计算机系统巡游
CSAPP即<Computer System: A Programmer Perspective>的简称,中文名为<深入理解计算机系统>.相信很多程序员都拜读过,之前买的旧版没有读完,如今恰好第二版出版,就入手影印版重读经典.一读果然,经典依然是经典,CMU卡内基梅隆大学的本科教材,堪比另一本SICP的六星佳作啊! 1.A Tour of Computer System 1.1 Programs Are Translated by Other Programs into Diffe…
CSAPP之阅读笔记-计算机系统漫游(1)
最近在看CSAPP(深入理解计算机系统第二版),其实最新版是第三版.但是,我看了一下价格100多大洋,于是去老夫子旧书网上买了本第二版的,花了30多块钱.哈哈. 网上看了一些关于此书的书评,都说是本好书,唯一缺点就是比较难懂.没关系,就姑且先啃一啃,实在不行,实在不行,再退而求其次,看那本<编码:隐匿在计算机软硬件背后的语言>吧. 以下是书中笔记部分与自己理解部分,由于是自学,误解或者错误肯定是不可避免的,希望能给予指出. 第一章 计算机系统漫游 计算机系统是由硬件跟软件共同组成的,它们是一…
CSAPP HITICS 大作业 hello's P2P by zsz
摘 要 摘要是论文内容的高度概括,应具有独立性和自含性,即不阅读论文的全文,就能获得必要的信息.摘要应包括本论文的目的.主要内容.方法.成果及其理论与实际意义.摘要中不宜使用公式.结构式.图表和非公知公用的符号与术语,不标注引用文献编号,同时避免将摘要写成目录式的内容介绍. 计算机系统是高度集成的一个相当复杂的系统,这个系统的实现有多重机制. 本文通过结束计算机中一个简单的hello程序从预处理一直到IO管理的整个过程中的实现细节,粗略介绍了计算机系统的机制,对其中一些关键的实现细节进行了相对详…
CSAPP:第一章计算机系统漫游
CSAPP:计算机系统漫游 关键点:上下文.程序运行.计算机系统抽象. 信息就是位+上下文一个程序的运行过程系统的硬件组成编译系统是如何工作的?一个程序的运行过程(c语言举例)计算机系统中的抽象 信息就是位+上下文 所谓信息(包括磁盘文件.内存中的程序.内存中存放的用户数据.以及网络上传输的数据),都是由一串比特(bit)表示的,区分不通数据对象的唯一方法是我们读到数据对象时的上下文. 这里的上下文,可以理解为一个”标志“,用于区分不通的数据对象,或者进入不同的状态,在不同的上下文中,一个…
深入理解计算机系统项目之 Shell Lab
博客中的文章均为meelo原创,请务必以链接形式注明本文地址 Shell Lab是CMU计算机系统入门课程的一个实验.在这个实验里你需要实现一个shell,shell是用户与计算机的交互界面.普通意义上的shell就是可以接受用户输入命令的程序.它之所以被称作shell是因为它隐藏了操作系统低层的细节.完成Shell Lab你会对shell有更加深入的认识,并熟悉Linux的多进程编程方法. 编程实现是一种绝佳的学习方式,然而就像这个实验一样,很多很好的课程作业都隐藏在互联网当中.大多数人难以通…
哈工大CSAPP大作业
第1章 概述 1.1 Hello简介 hello的源码hello.c文件,要生成可执行文件,首先要进行预处理,其次要进行编译生成汇编代码,接着进行汇编处理生成目标文件,目标文件通过链接器形成一个可执行文件,可执行文件需要一个执行环境,它可以在linux下通过shell进行运行,与计算机其他经常文件同步运行,并通过异常处理机制相应信号.在运行的过程中,程序通过Intel内存管理机制一步步访问逻辑地址.虚拟地址.物理地址,从而进行数据交换,还可以通过IO机制进行输入输出交互 1.2 环境与工具 环境…