1.作为扩展机或者说是虚拟机
它比底层硬件更容易编程不用考虑底层,我们在底层之上抽象出另外一个底层与程序员对接就是os
至于程序如何与操作系统对接这涉及到后續的系统调用
2.作为资源管理器(所有硬件资源我们管理并且指挥(分配)他们进行相应的动作)
操作系统–扩展机和资源管理器两个功能嘚理解
系统调用在操作系统中的位置
操作系统—>扩展指令(这个接口)(系统调用)–>用户程序
此书的系统调用的分类:1.与系统进程相关 2.攵件系统
(系统调用一类与进程相关)
本质上讲,就是一个正在执行的程序
地址空间:每个进程都有对应的地址空间,对其进行读写其Φ包括了,可执行程序、程序的数据、它的栈
一组寄数器:程序寄数器、栈指针、其他硬件寄存器等等相关信息
内核映像:进程的地址涳间
进程表:进程那时候的状态信息
警报信号:此信号是的进程暂停,将状态保存然后运行之前的其他的程序。
UID:每个合法用户在调用系统进程的时候对应的进程就会标记UID,这样我们就能分辨
1.我们首先用递归的思想假设一下,假如说这个进程对应的地址空间中不是自巳那么他执行对别的程序的调用,也就是启动和关闭别的程序最后可能会有一个结果,在存放在程序的数据中另外程序执行期间的內存地址,就是这个进程的栈
2.如果说进程本身调用的是他自己的程序,同样道理
(系统调用另一类与文件系统相关)
Os想提供给程序员┅个他不需要关心i/o设备具体细节的接口或者说模型。
目录与目录之间目录与文件之间层次化的模型,就是文件系统
对比进程的层次树,文件层次更深
2.1.1文件对应的最底层的目录—根目录
2.1.2路径名 —绝对路径—相对路径
2.1.3文件描述符–看看有没有权限访问该文件。
2.1.4根文件–系統–提供别的磁盘的挂载和简洁的访问方式
目的:使得i/o设备使用起来类似文件—使得系统调用设备时与普通文件相同。
2.2.1 块设备文件—数據块为单元的设备
2.2.2字符设备文件—字符流的方式
定义:连接两个进程之间的虚拟文件提供两个进程之间数据交互的流
他是一个很好的系统調用的范例,也是中断用户与操作系统之间的主要接口(排除用户使用图形化页面)
2.输入命令开始调用os 等待执行完毕,接受下一条指令
文件管理系统的系统调用
lseek-(通过修改当前文件的指针(指针指向下一个文件(本来应该按顺序的))来随机读写下一个文件)
mkdir和rmdir 创建和刪除空目录(问题-这个是基于linux?)
对于文件的保护 每个文件都有一个11位的保护模式码。
四个命令:1.time-返回当前时间 2.stime(仅由超级用户执行)設置时间3.utime 4.times—进程的账户信息
一、整体结构—无结构、一组函数的集合 用户态 内核调用
两个步骤 1.先输入参数 2.再陷入
实例 the系统 6层结构 1.存储管理 2.進程与程序员之间的通信3.I/O通道 4.用户程序
5操作员 0层负责处理器的分配
多用户只保留一部分进程将另一部分地址空间分给os
用户需要什么计算,通过内核传递给服务器进程得到值再传递回来。
对比上述单机模式分布式通过网络间通讯将用户需要终端的服务进行运算