MIT 操作系统6.S081第一章

news/2025/2/24 13:32:59/文章来源:https://www.cnblogs.com/awigwu76/p/18566358

1.1进程和内存

fork

父进程中 fork 返回 子进程的PID
子进程中 fork 返回 0

exit

exit会让当前进程停止执行并释放资源(包括内存和打开的文件)
通常:
0 表示 成功
1 表示 失败

wait

wait 系统调用并返回当前进程已退出或杀死的进程PID,并将子进程的状态复制到wait的地址
另外:
如果子进程没有退出,那wait等待子进程的退出
如果没有子级,返回-1
如果父级不关注子级的退出状态,返回0

1.2I/O与文件描述符

输入和输出称为I/O
文件描述符接口将文件,管道和设备之间的差异抽象出来,使他们看起来都像字节流

文件描述符一般来说
0.标准输入
1.标准输出
2.标准错误

而shell确保实现这一点

read

read(fd,buf,n)从文件描述符fd读取最多n字节,将它们复制到buf
返回读取的字节数
引用文件的每个文件描述符都有一个与之关联的偏移量。read从当前文件偏移量开始读取数据,然后将该偏移量前进所读取的字节数:(也就是说)后续读取将返回第一次读取返回的字节之后的字节。当没有更多的字节可读时,read返回0来表示文件的结束。

write

write(fd,buf,n)将buf中的n字节写入文件描述符
返回写入的字节数
只有发生错误时才会写入小于n字节的数据。与读一样,write在当前文件偏移量处写入数据,然后将该偏移量向前推进写入的字节数:每个write从上一个偏移量停止的地方开始写入。

close

close释放一个文件描述符,使其可以被open,pipe,dup重用
新分配的文件描述符总是当前进程中编号最小的未使用描述符

fork复制了文件描述符,但是每个基础文件偏移量在父进程和子进程中是共享的。

dup

dup复制一个现有的文件描述符,返回一个引用自同一个底层I/O对象的新文件描述符。两个文件描述符共享一个偏移量

1.3管道

管道相比临时文件至少有四个优势:
首先,管道会自动清理自己;在文件重定向时,shell使用完/tmp/xyz后必须小心删除

其次,管道可以任意传递长的数据流,而文件重定向需要磁盘上足够的空闲空间来存储所有的数据。

第三,管道允许并行执行管道阶段,而文件方法要求第一个程序在第二个程序启动之前完成。

第四,如果实现进程间通讯,管道的阻塞式读写比文件的非阻塞语义更高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/840557.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TIA 做交通信号灯控制练习1

练习一下交通信号灯程序,从简单的功能做起。红绿黄等交替亮起。使用TIA编程,做成FB。新建一个TIA项目,选择一个1200CPU. 1. 新建一个FB,在新建的FB,先配置输入输出变量。 2. 在FB写下面的程序3. 在WINCC上建立1200?1500的变量连接,连接博图模拟器,建立变量。4.WINCC画…

Nuxt.js 应用中的 webpack:change 事件钩子

title: Nuxt.js 应用中的 webpack:change 事件钩子 date: 2024/11/24 updated: 2024/11/24 author: cmdragon excerpt: 通过webpack:change钩子,开发者可以知道哪些文件被修改,并可以进行适当的处理,比如重新加载相关模块,或更新用户界面等。 categories:前端开发tags:N…

HCIA-04 IP层及IP地址规划

详细介绍了IP地址规划的相关知识,包括IP地址的基本概念、格式、版本、头部字段、服务类型、分片机制、生存时间(TTL)以及IP地址分类等。特别强调了子网划分的重要性及其应用场景,通过实例演示了如何进行子网划分计算,包括子网数量、IP地址数量及每个子网的地址范围等。此外…

【MX-S7】梦熊 NOIP 2024 模拟赛 3 SMOI Round 2(同步赛)

【MX-S7】梦熊 NOIP 2024 模拟赛 3 & SMOI Round 2(同步赛)\(T1\) luogu P11323 【MX-S7-T1】「SMOI-R2」Happy Card \(20pts\)发现可以把「炸弹」也看做「三带一」。先使用「三带一」带走原用于出「单牌」的牌,若「三带一」还有剩余则尝试带走原用于出「对子」的牌,否…

Arthas的安装与使用

Arthas的安装与使用 简介Arthas是一款线上监控诊断产品,通过全局视角实时查看应用load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常、监测方法执行耗时,类加载信息等,大大提升了线上问题排查效率。下载 …

vxe-table 设置单元格对齐方式,左对齐、右对齐

官网:https://vxeui.com/<template><div><vxe-tableborderheader-align="center"align="left":data="tableData"><vxe-column type="seq" width="70"></vxe-column><vxe-column field=&q…

高级语言程序第八次设计作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2024C 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/2024C/homework/13307 学号:102400128 姓名:吴俊衡 11.1 问题无11.2 问题无11.3 问题无11.6 问题无11.7 问题无12.1 问题无12.2 问题:不会怎么设…

问题待解决

model() 默认是 predict mode么,等价于 model.predict()? model 不指定 task 类型,默认是 detect task么

20222317 2024-2025-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 (1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取如下信息: ①DNS注册人及联系方式 ②该域名对应IP地址 ③IP地址注册人及联系方式 ④IP地址所在国家、城市和具体地理位置 (2)尝试获取BBS、论坛、QQ、MSN中某一好友的IP地址,并…

2024-2025-1 学号:20241301 《计算机基础与程序设计》第九周学习总结

|这个作业属于哪个课程|2024-2025-1-计算机基础与程序设计| |这个作业要求在哪里|2024-2025-1计算机基础与程序设计第一周作业| |这个作业的目标|<复习知识,巩固基础>| |作业正文|https://www.cnblogs.com/HonJo/p/18566259| 一、教材学习内容总结 (一)指针与数组 在C…

项目代码性能优化

性能优化之: 1. //减少了服务器请求次数 防抖: 防止用户在短时间内操作多次(发送多次无意义请求) 验证码 - 通过使用input验证码/滑动验证/选图片等, 验证插件, 实现先验证, 再发送请求! 节流 - 让某个函数在指定时间内, 只调用一次( 肯定会和定时器搭配使用 ) …

高级语言程序设计作业

班级:https://edu.cnblogs.com/campus/fzu/2024C 作业要求: https://edu.cnblogs.com/campus/fzu/2024C/homework/13307 姓名:鲁申如 学号:102300123