OS Design and Implementation读书笔记(1)

|| 计算机可分为:硬件 / 系统软件 / 应用软件
其中系统程序包括:操作系统,编译器,命令解释器(shell)等,
OS是最特殊的一个系统软件,它需要CPU处于内核态才会运行,且受到硬件的保护

|| 硬件操作很复杂,我们通过在裸机上引入一个软件(OS),让他来管理硬件系统的各个部件,并给上层用户提供易于操作硬件的接口

|| 让上面的人好管理硬件:
OS的一大功能就是将复杂的硬件操作封装起来,给程序员一个方便编程的接口。从这个角度看,OS的功能就是提供了一个等价的扩展计算机或称虚拟机,使得用户程序可以通过称为“系统调用”的特殊指令来使用OS提供的服务(当前猜想:用户程序使用特殊指令来造成中断/异常事件,使得CPU转化为内核态去运行操作系统,操作系统通过不同的中断码调用不同的服务,使得CPU运行中断处理程序去解决中断)

|| 让自己好管理硬件
计算机的硬件多且杂,OS作为管理硬盘者,需要在互相竞争的程序之间有序地控制硬件设备的分配使用
OS的另一大功能就是作为资源管理器,它需要做到
1,资源跟踪记录 — 即数据结构
2,资源共享策略 — 即算法
3,分配回收
4,协调冲突

|| 系统调用,是操作系统的扩展指令,它们定义了操作系统与用户程序的接口
可以理解为一个操作硬件的函数调用,它把CPU转变为内核态,令CPU控制权交给操作系统

|| MINIX 3系统调用大致分为两类:
进程相关系统调用:进程创建与终止,请求与释放更多内存,等待一个子进程结束,加载并执行另一个程序
文件相关系统调用:创建与删除文件,打开与关闭文件,读与写文件

进程:

|| 进程的简要概念:本质上讲就是一个正在进行的程序,运行在一个内存地址上,进程是通过系统调用常见或者终止的

|| 操作系统中有一个 进程表(链表或结构数组),无论运行还是挂起每个进程都会占用表的一项
进程可以创建子进程,子进程也可以创建子进程,这就构成了进程树。相关进程通过“进程间通信”相互合作,共同完成某项任务。

进程举例:当你需要编译一个程序时,键入命令后,shell通过进程创建系统调用创建了进程,新进程中运行了编译器,待编译完成,shell通过进程终止系统调用终止自己

文件:

|| 文件的简要概念:本质上在磁盘相关区域上,OS屏蔽了相关细节

|| 操作系统中有 目录,目录由其绝对路径

|| 访问文件:
访问一个文件进行读写操作时,会进行权限检查,若访问许可则返回一个整数(文件描述符),若权限不够就返回一个错误码-1
文件和目录通过一个11位的二进制码来保护。保护码分为3个3位的域(剩下两位另谈),第一个域用来描述文件所有者,第二个域用来描述同组用户,第三个域则是其他用户。域中3位分别标识读权限,写权限和可执行权限(rwx),“-”表示不具备相应权限 eg:文件保护码:rwxrwxrwx / rwxr-x–x

|| 挂装文件:
使用挂装系统调用,将外来文件系统挂装到根文件系统中的任何位置。(不能并行挂装,形成两个跟文件系统)

|| 设备文件:为了使得I/O设备的使用更加类似于文件来方便文件的读和写操作,引入设备文件的概念。分为:块设备文件,字符设备文件

|| 进程与文件的联系:
1,任一时刻,每一个进程都有其当前的工作目录,在这种目录下路径名使用简略版(仅包含据对路径名尾部)
2,管道:管道时用来连接两个进程的虚拟文件。通过这个管道(文件)进行进程间的数据传输

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值