MIT 操作系统6.S081第一章
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后必须小心删除
其次,管道可以任意传递长的数据流,而文件重定向需要磁盘上足够的空闲空间来存储所有的数据。
第三,管道允许并行执行管道阶段,而文件方法要求第一个程序在第二个程序启动之前完成。
第四,如果实现进程间通讯,管道的阻塞式读写比文件的非阻塞语义更高效。
MIT 操作系统6.S081第一章的更多相关文章
- 第一章 Java多线程技能
1.初步了解"进程"."线程"."多线程" 说到多线程,大多都会联系到"进程"和"线程".那么这两者 ...
- 第一章.C语言简介
C语言第一章 C语言简介 目录 一.C语言介绍 二.C语言特点 三.Hello World 四.转义符 五.占位符 六.俄罗斯方块游戏 七.文件下载 一.C语言介绍 C是一种通用的编程语言,广泛用 ...
- 第一章 Android系统移植与驱动开发概述
本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...
- 【php学习】PHP 入门经典第一章笔记
第一章: php在线手册:http://php.net/manual/zh/index.php 在开始学习PHP之前,先来看一个合格的PHP程序员今后应具备哪些知识,这里只是笔者的一些总结,希望对读者 ...
- 第一章 数据库概述、MySQL的安装和配置
第一章 数据库概述.MySQL的安装和配置 1.为什么要使用数据库 最早是纸质文件来存储数据 缺点:不易保存,占用空间大 计算机出现以后,采用软件来进行保存(excel) 缺点:容易损坏 文件 ...
- 第一章 Andorid系统移植与驱动开发概述 - 读书笔记
Android驱动月考1 第一章 Andorid系统移植与驱动开发概述 - 读书笔记 1.Android系统的架构: (1)Linux内核,Android是基于Linux内核的操作系统,并且开源,所以 ...
- Java学习笔记 第一章 入门<转>
第一章 JAVA入门 一.基础常识 1.软件开发 什么是软件? 软件:一系列按照特定顺序组织的计算机数据和指令的集合 系统软件:DOS,Windows,Linux 应用软件:扫雷.QQ.迅雷 什么是开 ...
- 《LINUX内核设计与实现》读书笔记之第一章和第二章
一.第一章 1. Unix内核的特点简洁:仅提供系统调用并有一个非常明确的设计目的抽象:几乎所有东西都被当做文件可移植性:使用C语言编写,使得其在各种硬件体系架构面前都具备令人惊异的移植能力进程:创建 ...
- PRML读书会第一章 Introduction(机器学习基本概念、学习理论、模型选择、维灾等)
主讲人 常象宇 大家好,我是likrain,本来我和网神说的是我可以作为机动,大家不想讲哪里我可以试试,结果大家不想讲第一章.估计都是大神觉得第一章比较简单,所以就由我来吧.我的背景是统计与数学,稍懂 ...
- 【翻译习作】 Windows Workflow Foundation程序开发-第一章02
1.2 Windows Workflow概览 微软的Windows Workflow Foundation(简称WF)是.NET框架3.0版的一部分..NET3.0其它主要部分是Window ...
随机推荐
- 抛出 NoClassDefFoundError: javax/validation/constraints/Size 问题的解决方法
Error:java: java.lang.NoClassDefFoundError: javax/validation/constraints/Size 问题很明显,找不到相关类.我们可以在 pom ...
- Python中定位元素包含文本信息的详细解析与代码示例
在Python编程中,特别是在进行网页自动化测试或数据抓取时,定位包含特定文本信息的元素是一个常见的需求.通过合适的工具和库,可以高效地查找和操作这些元素.本文将详细介绍如何在Python中定位包含文 ...
- Qt编写视频监控系统77-Onvif组件支持非正常时间的设备
一.前言 在经历了大量的现场设备测试,至少几十种厂家.几百种设备,遇见过奇奇怪怪的问题,一个个想方设法解决,发现有个问题是在下发鉴权的时候,需要带上设备的时间,而不是发送端的时间,如果带的不是设备上的 ...
- Qt5离线安装包无法下载问题解决办法
1.前言 Qt5离线安装包目前在国内已经被墙了,无法下载,只能下载在线安装包: 直接访问会显示Download from your IP address is not allowed: 本文就提出两种 ...
- 即时通讯技术文集(第18期):IM架构设计基础知识合集 [共16篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第18 期. [- 1 -] IM系统的MQ消息中间件选型:Kafka还是RabbitMQ? [ ...
- 长连接网关技术专题(五):喜马拉雅自研亿级API网关技术实践
本文由喜马拉雅技术团队原创分享,原题<喜马拉雅自研网关架构实践>,有改动. 1.引言 网关是一个比较成熟的产品,基本上各大互联网公司都会有网关这个中间件,来解决一些公有业务的上浮,而且能快 ...
- WPF中实现弹出进度条窗口
实现功能: 模拟一个任务开始执行,在窗口弹出一个进度条,展示执行进度,执行完成弹出提示框.例如做数据查询时,如果查询需要一段时间,操作人员可以很好的知道是否查询完成. 1. 设计进度条弹出窗口 进度条 ...
- 使用format_obproxy_digest_log工具分析obproxy网络层耗时SQL
之前写过一个博客,介绍 ob_tools包 来实施抓取 observer 层的 gv$ob_sql_audit 的SQL,还提供一些分析SQL来通过不同维度分析缓慢的业务SQL语句,免得和应用扯皮说数 ...
- C语言这种单细胞编程语言和指针的一些理解
转行做嵌入式也有一段时间了,原来做c#以及一些其它的上层语言, 本想的是也就是仅仅是语法上有点不一样.但是实际使用的切身体会真的是只有自己才知道.很多方面刷新了我对c语言以及计算机结构体系的认知 ,绝 ...
- RocketMQ原理—5.高可用+高并发+高性能架构
大纲 1.RocketMQ的整体架构与运行流程 2.基于NameServer管理Broker集群的架构 3.Broker集群的主从复制架构 4.基于Topic和Queue实现的数据分片架构 5.Bro ...