《现代操作系统》章节试读

当前位置:首页 > 计算机网络 > 研究生/本科/专科教材 > 现代操作系统章节试读

出版社:机械工业出版社
出版日期:2005-9-1
ISBN:9787111165118
作者:(荷)Andrew S. Tanenbaum
页数:568页

《现代操作系统》的笔记-第一章 引论 - 第一章 引论

1.内核:内核把虚拟空间地址划分为两个部分,保护各个系统进程,使他们批次分离开来。
1)“特权 权限”
2)读取文件时 内核会进入休眠状态
3)激活内核例程:进程执行系统调用;正在执行进程的CPU发生一个异常;外围设备向CPU发出一个中断;内核线程被执行。
4)通过 系统调用 从用户态切换到内核态。
2.系统调用:指运行在使用者空间的程序向操作系统内核请求需要更高权限运行的服务。系统调用提供用户程序与操作系统之间的接口。大多数系统交互式操作需求在内核态执行
系统调用的目的:允许用户进程在内核中访问和执行操作系统功能。用户程序使用系统调用操作系统服务。
系统调用是操作系统提供给用户程序和操作系统之间交互的一组接口,通过系统调用,可用于进程管理,文件管理,目录管理等等。
3.SPOOLing(即外部设备联机并行操作)
,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为"假脱机技术"。 SPOOLing技术是在通道技术和多道程序设计基础上产生的,它由主机和相应的通道共同承担作业的输入输出工作,利用磁盘作为后援存储器,实现外围设备同时联机操作。 SPOOLing系统由专门负责I/O的常驻内存的进程以及输入井、输出井组成;它将独占设备改造为共享设备,实现了虚拟设备功能。

《现代操作系统》的笔记-第1页 - 1

《现代操作系统》
第1章 引论
1.3.1 存储器
寄存器:
通用寄存器:保存变量和临时结果
程序计数器:取出下一跳指令的内存地址
堆栈指针:指向内存中当前栈的顶端
程序状态字:包含了条件码位、CPU优先级、模式(用户态或内核态)及其他控制位
CPU:
取指单元
解码单元
执行单元
CPU两种模式:
内核态:操作系统在内核态下运行
用户态:用户程序在用户态下运行
用户程序使用系统调用进入内核态并调用操作系统。
1.3.2 存储器
1ns 寄存器 2ns 高速缓存 10ns 内存 10ms 磁带 100s 磁带
主存:
RAM:存放BIOS等
ROMEEPROM
闪存:速度在RAM与磁盘之间
实现输入和输出三种方式:
系统调用,忙等待
设备驱动程序启动程序并发生中端
直接存储器访问(DMA)
这里写图片描述
三个专门的总线:
IDE:磁盘、CD-ROM
USB:慢速设备,键盘、鼠标
SCSI:高速硬盘、扫描仪等较大带宽的设备,用于Macintosh,UNIX等
1.4.1 大型机操作系统
批处理
事务处理
分时处理
1.4.2 服务器操作系统
操作系统概念
进程:包括进程的地址空间,对应的进程表项。
1.6 系统调用
POSIX系统调用主要有4方面:
进程管理:
pid = fork
pid = waitpid
s = execve
exit
文件管理:
fd = open
s = close
n = read
n = write
position = lseek
s = stat
目录和文件系统管理:
s = mkdir
s = rmdir
s = link
s = unlink
s = mount
s = umount
杂项:
s = chdir
s = chmod
s = kill
seconds = time
注:s——返回代码,出错返回-1
不通过系统调用:无须陷入内核。
1.6.3
在UNIX中,每个文件都有唯一的编号,即i-编号,用以标识文件。 目录是i编号,ASCII名称对的一个集合。
1.6.5 Windows Win32 API
UNIX使用系统调用,Windows程序通常是事件驱动。 Win32 API:应用编程接口。
1.8 依靠C的世界
.h .c 预处理器 编译器 .o link(载入.a) a.out(载入.o)
##2 进程与线程
4中重要事件导致进程的创建:
系统初始化
执行正在运行的进程所调用的进程创建系统调用
用户请求创建新进程
一个批处理作业的初始化
守护进程 daemon
UNIX:fork + execve Windows:CreateProcess
4中重要事件导致进程的终止:
正常退出(自愿)
出错退出(自愿)
严重错误(非自愿)
被其它进程杀死(非自愿):kill vs TerminateProcess
UNIX:exit Windows:ExitProcess
进程三种状态: 阻塞->就绪(->运行)->运行
运行:进程占用CPU
就绪:可运行,其它进程在运行而暂停
阻塞:等待某时间发生,之后才能运行
线程拥有:
程序计数器:记录接着要执行哪一条指令。
寄存器:保存线程当前的工作变量。
堆栈:记录执行历史。
状态
线程有四种状态:
运行:进程占用CPU
就绪:可运行,其它进程在运行而暂停
阻塞:等待某时间发生,之后才能运行
终止
不同于进程,线程无法利用时钟中断强制线程让出CPU。
内核中实现线程,每个进程中没有线程表,而是在内核中有用来记录系统中所有线程的线程表。
2.3
临界区
忙等待的互斥
睡眠与唤醒
信号量
互斥量
管程
消息传递
屏障
2.3.3 忙等待的互斥
屏蔽中断
锁变量
严格轮换法
连续测试一个变量直到某个值出现为止,称为忙等待。 用于忙等待的锁,称为自旋锁。
2.3.5 信号量
信号量(sephamore)的down(P)和up(V)是一般化后的sleep和wakeup。
2.3.6 互斥量
如果不需要信号量的计数能力,可以使用信号量的简化版本——互斥量(mutex)。
Java中浸泡芒果的wait和notify分别与sleep和wakeup等价。
抢占式算法,非抢占式算法。
2.4.2 批处理系统中的调度
先来先服务
最短作业优先
最短剩余时间优先
2.4.3 交互式系统中的调度
轮转调度
优先级调度
最短进程
保证调度
彩票调度
公平分享调度
2.4.4 实时系统中的调度
3 存储管理
进程是抽象的CPU,地址空间是抽象的内存。
虚拟内存:每个程序拥有自己的地址空间,这些空间被分隔成很多块,每一个块称为一个页面,每一页游连续的地址范围。
多级页表:32为的虚拟地址被划分为10位的PT1域,10位的PT2域和12位的Offset(偏移量)域。因为偏移量是12位,所以页面长度是4KB,共有2^20个页面。
NRU:最近未使用
FIFO
时钟页面置换算法
LRU:最近最少使用
编译器在编译过程中建立的表(也就是段),包括:
被保存起来供打印清单用的源程序正文(用于批处理系统)。
符号表,包含变量的名字和属性。
包含用到的所有整形量和浮点常量的表。
语法分析树,包含程序语法分析的结果。
编译器内部过程调用使用的堆栈。
发明分页和分段的目的:
分页:得到大的线性地址空间而不必购买更大的物理存储器。
分段:为了使程序和数据可以被划分为逻辑上独立的地址空间并且有助于共享和保护。
目录指向页表,页表指向页框。
文件系统
进程(与线程)、地址空间和文件,是操作系统中最重要的抽象概念。 文件是进程创建的信息逻辑单元。
UNIX区分大小写字母,Windows不区分大小写字母。
Windows对扩展名赋予含义。用户(或进程)可以在才做系统中注册扩展名,并且规定哪个程序”拥有“该扩展名。
UNIX还有字符特殊文件和块特殊文件。前者用于串行I/O类设备,如终端、打印机、网络等。后者用于磁盘类设备。
两种方式实现共享:
目录放入小型数据结构(i节点)取代磁盘块。
符号连接。
删除文件需要三个步骤:
在目录中删除文件。
释放i节点到空闲i节点池。
将所有磁盘块归还空闲磁盘块吃。
13 操作系统设计
操作系统4要素:
定义抽象概念
提供基本操作
确保隔离
管理硬件


 现代操作系统下载 更多精彩书评


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024