西电软工操作系统复习

写在前面:

软工的操作系统在上课的时候老师讲了很多内容,书很厚,全英版本很难啃,但是整体来说学起来不是非常的吃力(课设是个例外),我只能说一定要会老师布置的课后题,当初复习的时候本来以为自己还能在卷面上拿个不错的成绩,没想到期末卷子给我拉了坨大的,还是很感谢我们老师的力挽狂澜,人间大爱!

这篇复习也仅限于复习,我也会把一些之前遇到的平时难注意到的知识点穿插进来,内容不是全英的,中英夹杂便于理解

正文开始:


目录

第一章 INTRODUCTION 概述介绍

1.操作系统的基本概念,基本功能

2.1操作系统的历史

2.2 OS zoo

3.分时系统、批处理系统、实时系统的主要特征

4.用户接口、系统调用过程

5.单道与多道技术

6.操作系统虚拟机体系结构

7.计算机硬件

8.CPU工作模式

9.细碎

第二章 PROCESSES AND THREADS 进程和线程

1.process 进程

2.threads 线程

3.进程和线程的区别

4.Interprocess communication  IPC 进程间通信

5.scheduling 调度

6.经典IPC问题

第三章 DEADLOCK 死锁

1.resources 资源

2.死锁

3.细碎了解

第四章 MEMORY MANAGEMENT 内存管理

1.概述

2.无存储器抽象

2.一种存储器抽象:地址空间 address space

3.虚拟内存和物理内存管理

4.Page replacement algorithms 页面置换算法

5.段式与页式管理

6.分页系统中的设计问题

第五章 FILE SYSTEM 文件系统

1.file 文件

2.directories 目录

3.file-system implementation 文件系统的实现

4.file-system management optimization 文件系统管理和优化

第六章 INPUT/OUTPUT 输入输出

1.principles of I/O hardware I/O硬件原理

2.Principles of I/O software I/O软件原理

​编辑3.I/O software layers  I/O软件层次

4.Disks 盘

5.Clocks 时钟

6.User interfaces:beyboard、mouse、monitor 用户界面

7.Thin clients 瘦客户机

8.Power management 电源管理

第七章 VIRTUALIZATION虚拟化

第八章 MULTIPLE PROCESSOR SYSTEMS多处理机系统

1.Multiprocess 多处理机(多核)

2.Multicomputers 多计算机(多机)

​编辑3.Distributed system 分布式系统    

第九章 SECURITY 安全

1.The security environment 环境安全

2.controlling access to resources保护机制

3.authentication认证


第一章 INTRODUCTION 概述介绍

computer system:hardware+software(system programs+application programs)

1.操作系统的基本概念,基本功能

操作系统是一组控制和管理计算机软、硬件资源,合理组织计算机工作流程以方便用户的程序集合

基本构成:处理器、存储器、输入输出模块、系统总线、磁盘

特征:并发、共享、虚拟、异步   设计目标:方便性、有效性、可扩充性、开放性

基本功能:

        ①处理机管理:进程控制、同步、通信、处理机调度

        ②存储器管理:内存分配、内存保护、地址映射、内存扩充

        ③设备管理:缓冲管理、设备分配、设备处理(驱动程序)

        ④文件管理:外存管理、目录管理、文件的读/写和保护

        ⑤用户接口:系统调用(程序接口)、命令接口、图形接口

        ⑥作业管理:作业组织、调度

两大重要作用:

        ①为用户提供扩展机器(是计算机硬件的首次扩充)extended machine

        ②管理I/O设备和其他系统资源(对系统的硬软件资源实施有效的控制和管理)resource manager——资源管理(多路重复利用:时间、空间)

an operating system is an extended machine and a resource manager

OS的结构特征:

①层次结构Layered ②虚拟机器 virtual machine ③庞大而单一的 monolithic

2.1操作系统的历史

1945-1955第一代——真空管Vacuum TUBES和穿孔卡片

1955-1965第二代——晶体管和批处理系统Transistors and Batch System

1965-1980第三代——集成电路和多道程序设计 ICS and Multiprogramming

1980至今第四代——个人计算机personal computer

1990至今第五代——移动计算机Mobile computer

2.2 OS zoo

①大型机OS mainframe OS:面向多个作业同时处理(批处理、事务处理、分时)

②服务器OS Server OS:通过网络同时为若干user服务,允许用户共享软件资源

③多处理器OS Multiprocess OS

④个人计算机OS Personal Computer OS

⑤嵌入式OS Embedded OS:用来控制设备的计算机中运行

⑥实时OS Real-Time OS:有严格的deadline(软/硬实时)

⑦智能卡OS Smart Card OS

3.分时系统、批处理系统、实时系统的主要特征

①分时系统:

交互性;多路性;独立性;及时性

所有的分时系统都是多道程序,但并不是所有的多道程序都是分时系统

②批处理系统:

脱机使用,无交互性;成批处理、作业周转时间长;多道批处理具有高的资源利用率和大的吞吐量

③实时系统:

事件驱动、及时性、高可靠性(也具有独立性、交互性、多路性)

4.用户接口、系统调用过程

用户接口类别:①命令接口:提供给用户命令的方式控制系统运行

                         ②系统调用(程序接口API):与用户程序使用该接口访问系统资源,从而获取操作系统服务

                         ③图形用户接口

与设备有关的系统调用:open、close、read、write

与文件系统有关的系统调用:open、close、read、write、create、unlink

与进程控制有关的系统调用:fork、wait、exit、getpid、getppid、getpriority、nice、kill、signal、pause、pipe、lockf

5.单道与多道技术

单道:每次只调入一个作业进入内存并运行

多道:每次可调入多个作业进入内存并运行

6.操作系统虚拟机体系结构

7.计算机硬件

①处理器CPU:从内存中取出指令并执行 Fetch unit-Decode unit-Execute unit(取指令->解码->执行)

   寄存器register:在CPU内部用来保存关键变量和临时数据:base register基址寄存器、limit register界限寄存器

②存储器memory:

③I/O Devices(I/O设备):

a controller设备控制器——插在电路板上的一块芯片或一组芯片,从操作系统接收命令

the device itself其本身

实现I/O的方式:忙等待busy waiting、中断interrupt(中断分类:progarm,timer,I/O,hardware failure、直接存储器访问DMA Direct Memory Access

④总线Buses:系统中有很多总线,每条总线的传输速度和功能都不同

8.CPU工作模式

Most computers have two modes of operation:kernel mode and user mode.大多数电脑有两种运行模式:内核态和用户态

内核态:CPU可以执行指令集中的所有指令并使用硬件的每种功能且所占有的处理机不允许被抢占

用户态:仅仅允许执行指令集中的一个子集和访问所有功能的一个子集,且占有的处理机允许被抢占。

9.细碎

The progaem that users interact with,usually called shell when it its text based(基于文本) and GUI(Graphical User Interface基于图形)

什么是system call?

To obtain services from the OS,a user progarm must make a system call,which traps into kernel and invokes the OS.为了从OS获取服务,用户程序必须进行系统调用,该调用进入内核并调用OS。TRAP指令从用户模式切换到内核模式,启动OS,当工作完成后,根据系统调用之后的指令将控制返回给用户程序

第二章 PROCESSES AND THREADS 进程和线程

1.process 进程

·进程本质上是正在执行的一个程序executing program,是系统资源分配的基本单位,是资源竞争的基本单位

include: program counter程序计数器、register寄存器(stack栈、data section数据部分)、variables变量当前值

·多道程序设计:在某个瞬间,CPU只能运行一个进程,但在1秒钟内,它可以运行多个进程,这样产生并行的错觉,真正的CPU在各个进程之间来回切换

·进程的特征:

①动态性:进程的实质是程序在多道程序系统中依次执行过程,进程是动态产生,动态消亡的

②并发性:任何进程都可以同其他进程一起并发执行

③独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位

④异步性:由于进程的相互制约,是进程具有执行的间断性,即进程按各自独立,不可预知的速度向前推进

并发:两个或多个事件在同一时间间隔之内同时发生

并行:两个或多个事件在同一时刻同时发生

·进程创建Process Creation

①System initialization系统初始化

②Execution of a process-creation system call by a running process执行了系统调用

③A user request to create a new process用户命令,请求创建一个新进程

④Initiation of a batch job批处理作业的初始化

·进程终止Process Termination

进程终止时,进程对象的状态会发出信号,释放任何一直在等待进程终止的线程

①normal exit(voluntary)正常退出 ②error exit(voluntary)错误退出

③fatal error(involuntary)严重错误 ④killed by another process(involuntary)被其他进程杀死

·进程层次结构Process Hierarchies

进程只有一个父进程,但是可以有多个子进程

·进程状态Process States

①running运行态(进程占用处理器资源,处于此状态的进程数目小于等于处理器数目)

②ready就绪态(可运行,进程已获得除处理器外的所需资源,等待分配处理器资源,只要分配了处理器进程就可执行)

③blocked阻塞态(不可运行,由于进程等待某种条件,如I/O操作或进程同步,在满足条件前无法继续执行,该事件发生前即使把处理机分配给该进程,也无法运行)

·进程实现Implementation of Process

进程控制块PCB:process control blocks 包含进程状态的重要信息,反映进程的动态特征。记录进程状态以便恢复执行,提供进程间切换的信息

include:program counter程序计数器、stack pointer堆栈指针、memory allocation内存分配状况 

the status of its open file,its accouting and scheduling information所打开文件的状态、账号、调度信息

·CPU利用率 CPU utilization=1-p^n(n个进程,每个等待io的时间与停留在内存中的时间比为p)

2.threads 线程

·线程是轻量级的进程,是一个进程内的基本调度单位,有自己的程序计数器、寄存器及堆栈。

·引入线程的原因

①伪并行、进一步提高并发度 ②更小的系统开销 ③更高的性能 ④有利于在多CPU系统中实现真正的并行

·线程实现

①implementing threads in user space 在用户空间中实现线程(线程表在用户空间,进程表在内核空间,内核不知道线程的存在)

优点:用户级线程包可以在不支持线程的操作系统上实现,线程切换不需要进入内核进行上下文切换,用户级线程扩展性更好,用户级线程允许每个进程拥有自己的自定义调度算法。

缺点:线程阻塞会导致进程阻塞

②implementing threads in the kernel 在内核中实现线程(进程表和线程表都在内核空间)

优点:线程阻塞时可以检查是否有其他可运行的线程

缺点:线程切换开销大

③hybrid implementations混合实现:每个内核级线程有一个可以轮流使用的用户级线程的集合

·线程状态

运行、阻塞、就绪、终止

·多线程:指从软件或者硬件上实现多个线程并发技术

优点:使用多线程可以把程序中占据时间长的任务放到后台处理,如图片、视频的下载;发挥多核处理器的优势、并发执行让系统运行得更快,更流畅,用户体验感更好

缺点:大量的线程降低代码的可读性;更多的线程需要更多的内存空间;当多个线程对同一个资源出现争夺时候要注意线程安全问题

3.进程和线程的区别

·进程的本质是正执行的一个程序,线程是进程的一个实体,是进程的一条执行路径

·一个线程可以创建和撤销另一个线程,同一个进程的多个线程之间可以并发执行;一个进程可以包含多个线程,线程属于进程

·进程是资源分配的基本单位,线程是CPU调度和分派的基本单位

·进程拥有独立的地址空间,同一进程中的线程共享相同的地址空间

·多进程比多线程要健壮,一个线程死掉整个进程就死掉了,但在保护模式下,一个进程死掉对另一个进程没有直接影响

4.Interprocess communication  IPC 进程间通信

·race condition竞争条件

两个或多个进程读写某些共享数据,最后的结果取决于进程运行的精确时序

Situations like this, where two or more processes are reading or writing some shared data and the final result depends on who runs precisely when, are called conditions.

·critical regions临界区

临界资源:一次只允许一个进程使用的资源

临界区:对共享内存进行访问的程序片段

That part of the program where the shared memory is accessed is called the critical region or critical section.

·避免竞争——互斥mutual exclusion

prohibit more than one process from reading and writing the share data at the same time

互斥四个条件:

①No two processes may be simultaneously inside their critical regions.任何两个进程不能同时处于临界区

②No assumptions may be made about speeds or the number of CPUs.不应对CPU的数量和速度做任何假设

③No process running outside its critical region may block any process.临界区外运行的进程不得阻塞其他进程

④No process should have to wait forever to enter its critical region.不得使进程无限期等待进入临界区

·忙等待的互斥 Mutual Exclusion with Busy Waiting

①disabling interrupts屏蔽中断

使每个进程在刚刚进入临界区后立即屏蔽所有中断,并在就要离开之前再打开中断

②lock variables锁变量

设置共享(锁)变量,初始值为0. 0表示临界区内没有进程,1表示已经有某个进程进入临界区

弊端:可能存在2个进程同时进入

③strict alternation严格轮换法

连续测试一个变量直到某个值出现,成为忙等待,用于忙等待的锁成为自旋锁spin lock。要求两个进程严格的轮流进去他们的临界区,任何一个进程都不可能在一轮中打印两个文件

④Peterson解法

⑤TSL指令:防止两个进程同时进入临界区

   XCHG指令:可替代TSL

Peterson和TSL浪费CPU时间,会出现优先级反转问题

·Semaphores信号量

用于计算保存的唤醒次数以备将来使用,只能通过两个不可分割的原子操作来访问

down和up操作:对一信号量执行down操作,检查其值是否大于0,若该值大于0,则将其值减1(即用掉一个保存的唤醒信号)并继续;若该值为0,则进程将睡眠。up操作对信号量的值增1,如果一个或多个进程在该信号量上睡眠,无法完成一个先前的down操作,则由系统选择其中的一个并允许该进程完成他的down操作。

p v操作:由p操作原语和v操作原语组成(原语是不可中断的过程)对信号量操作定义如下:

P(S):将信号量s的值-1,即s=s-1;如果s>=0,则该进程继续执行,否则该进程置为等待状态,排入等待级别

V(S):将信号量s的值+1,即s=s+1;如果s>0,则该进程继续执行,否则释放队列中等一个等待信号量的进程

信号量实现了同步,信号量full和empty用来保证当缓冲区满时生产者停止,当缓冲区空时消费者停止

·mutex互斥量

不使用计数功能的信号量简化版 两种状态 unlocked解锁 or locked上锁

是用于管理共享资源或一小段代码,用于实现用户空间线程包,不会忙等待

·monitors管程

对内部访问只能先调用管程,每次存取只有一个进程可以调用管程,能够有效地完成互斥

·message passing消息传递

使用两条原语send和receive

·barrier屏障

在每个阶段的结尾安置屏障来阻碍进程进入下一个阶段,当一个进程到达平章事,他就被屏障阻挡,直到所有进程都到该屏障为止

5.scheduling 调度

·多个进程同时争CPU调度程序必须选择下一个运行哪个进程

·几乎所有进程的(磁盘或网络)I/O请求和计算都是交替突出的

·当一个进程等待外部设备完成工作而被阻塞时,才是I/O活动

·非抢占式调度算法nonpreemptive:挑选一个进程,让该进程运行直至被阻塞或者知道该进程自动释放CPU

抢占式调度算法preemptive:挑选一个进程,并让该进程运行没某个固定时段的最大值,如果在该时段结束时,该进程仍然运行,它就被挂起,而调度程序挑选另一个进程运行

·何时调度

①a new process ie created 进程创建

②a process exit 进程退出

③a process block an I/O 一个进程阻塞了一个I/O

④an I/O interrupt occurs I/O发生中断

·三级调度

①long-term schedule长期调度/作业调度:哪个程序被系统同选中并创建进程运行它

②medium-term schedule中期调度/内存调度:决定是否将进程调入内存

③short-term schedule短期调度/CPU调度:哪个进程获得处理器资源

·调度算法目标

throughout 吞吐量 turnaround time 周转时间 CPU utilization CPU利用率

minimize response time最小响应时间 proportionality均衡性 predictability 可预测性

·批处理中的调度

①First-Come,First-Served 先来先服务(nonpreemptive非抢占式)

优点:易于理解,便于在程序中应用;缺点:poor CPU utilization低CPU利用率;最先到达最先运行

②Shorest Job First最短作业优先(nonpreemptive非抢占式)

从后备队列中选择一个或若干个估计运行时间最短的作业,将他们调入内存,再所有作业都可同时运行的情况下最短作业优先算法才是最优化的

③shorest remaining time next最短剩余时间(最短作业优先的抢占式preemptive抢占式)

调度程序总是选择剩余运行时间最短的那个进程运行,当一个新的作业到达时,其整个事件同当前进程的剩余时间作比较,如果新的进程比当前运行进程需要更少的时间,当前进程就被挂起,运行新的进程

·交互式系统中的调度

①Round-Robin轮转调度

每个进程被分配一个时间段(时间片)quantum,允许该进程在该时间段中运行,若在时间片结束时该进程还在运行,则讲剥夺CPU并分配给另一进程,若该进程在时间片结束前阻塞或结束,则CPU立即进行切换

②Priority 优先级调度

preemptive抢占式:

每次调度选择当前已到达且优先级最高的,当前进程主动放弃转而处理优先级更高的进程

nonpreemptive非抢占式:

正在处理的进程处理结束,接下来每次选已到达且优先级最高的

③Multiple queue多级队列④Shortest Process Next最短进程优先

⑤Guaranteed Scheduling保证调度⑥Lottery Scheduling彩票调度⑦Fair-Shared Scheduling公平分享调度

·实时系统中的调度

硬实时(hard real time)、软实时(soft real time)

6.经典IPC问题

哲学家就餐:吃饭or思考,相邻两个人不能同时吃上饭

第三章 DEADLOCK 死锁

1.resources 资源

·定义:需要排他性使用的对象。资源可以是硬件设备(如蓝光驱动器)或是一组信息(如数据库中一个加锁的记录)

·分类:

①可抢占资源 preemptive resource:可以从拥有它的进程中抢占而不会产生任何副作用,存储器就是一类可抢占资源

is one that can be taken away from the process owing it with no ill effects

②不可抢占资源 nonpreemptive resource:在不引起相关的计算失败的情况下,无法把他从占有它的进程处抢占过来

is one that cannot be taken away from its current owner without causing the computation to fail

某个资源是否可抢占取决于上下文环境,死锁与不可抢占资源有关

·使用一个资源所需要的事件顺序可以用抽象的形式表示如下:

①request the resources请求资源

②use the resources使用资源

③release the resources释放资源

2.死锁

如果一个进程集合中的每个进程都在等待只能由该进程集合中的其它进程才能引发的事件,那么该进程就是死锁的,死锁只会产生在两个事件发生之间

a set of process is deadlock if each process in the set is waiting for an event that only another processin the set can cause.

·条件

①Mutual exclusion condition互斥条件:每个资源要么已经分配给了一个进程,要么就是可用的

②Hold-and-wait condition占有和等待条件:已经得到了某个资源的进程可以在请求新的资源

③No-preemptive condition不可抢占条件:已经分配给了一个进程的资源不能强制性地被抢占,她只能被占有它地进程显示地释放

④Circular wait condition环路等待条件:死锁发生时,系统中一定有两个或两个以上的进程组成的一条环路,该环路中的每个进程都在等待着下一个进程所占有的资源

·死锁建模

·死锁解决策略

①ignore the problem忽略该问题

the ostrich algorithm鸵鸟算法(死锁发生几率小,预防代价大)

②Detection and recovery检测并恢复

   ·检测死锁

     a.剪枝算法:有入无出,有出无入地都剪掉,若资源分配图中出现环——死锁(如上图)

     b.设资源类型数为m,E1代表资源类型1,E2代表资源类型2,Ei代表资源类型i(1≤i≤m),E是现有资源向量,代表每种已存在的资源总数,假设A是可用资源向量,Ai表示当前可供使用的资源数(即没有被分配的资源数),C表示当前分配矩阵,R代表请求矩阵

     C的第i行代表Pi代表当前所持有的每一种资源类型的资源数,Cij代表进程i所持有的资源j的数量,Rij代表Pi所需要的资源j的数量

     ·从死锁中恢复

     a.利用抢占恢复recovery through preemption  :在不通知原进程的情况下,将某一资源从一个进程强行取走给另一个进程使用,接着又送回。即临时将某个资源从它当前所有者那里转移给另一个进程

     b.利用回滚恢复recovery through rollback  :周期性地对进程进行检查点检查(需要将进程的状态写入一个文件以备以后重启)=>定期检查,若进程产生死锁,重启进程。检查点中不仅包括存储映像,还包括资源状态,即哪些资源分配给了该进程

    c.通过杀死进程恢复recovery through killing processes  :

     Ⅰ:杀掉换中的一个进程;

     Ⅱ:选择一个环外的进程作为牺牲品以释放该进程的资源

     杀死时间最短的,代价最小的,杀死一个可以从头开始并不会带来副作用的

③dynamic avoidance by careful resource allocation 仔细对资源进行分配,动态避免死锁

     a.the banker's algorithm for a single resource 单个资源的银行家算法:对每一个请求进行检查,检查如果满足这一请求是否会达到安全状态。若是,那么就满足该请求,否则就推迟这一请求的满足。

     b.the banker's algorithm for multiple resource 多个资源的银行家算法

④prevention预防死锁的发生

     a.attacking the mutual-exclusion condition破坏互斥条件:使用假脱机spooling printer,允许若干个进程同时输出,避免分配那些不是绝对必须的资源,尽量做到尽可能少的进程可以真正请求资源——spool everything

     b.attacking the hold-and-wait condition破坏占有并等待条件:规定所有进程在开始执行前请求所需的全部资源;当一个进程请求资源时,先暂时放弃当前占用的所有资源,然后再尝试一次获得所需的全部资源——request all resources initially

     c.attacking the no-preemptive condition破坏不可抢占条件:进行抢占——take resources away

     d.attacking the circular wait condition破坏环路等待条件:保证每一个进程在任何时刻只能占用一个资源,如果要请求另一个资源,它必须显示放第一个资源;避免出现环路等待——所有资源统一编号,所有请求必须按照资源编号的顺序提出——order resources numberically

3.细碎了解

·two-phase locking 两阶段加锁:在第一阶段,进程试图对所有所需的记录进行加锁,一个锁一次记录,如果第一阶段加锁成功,就开始第二阶段完成更新后释放锁,在第一阶段无实际工作;若在第一阶段某个进程需要的记录已经被加锁,那么该进程释放它所有加锁的记录,然后重新开始第一阶段

·communication deadlocks 通信死锁:在一系列进程中,每个进程因为等待另外一个进程引发的事件而产生阻塞,通信死锁是协同同步的异常情况

·livelock 活锁:拿到资源却又相互释放不执行,当多线程中出现了相互谦让,都主动将资源释放给别的线程使用,这样这个资源在多个线程之间跳动而又得不到执行

·starvation 饥饿:多线程执行中有线程优先级这个东西,优先级高的线程能够插队并优先执行,这样如果优先级高的线程一直抢占优先级低线程的资源,导致低优先级线程无法得到执行。还有一种饥饿的情况,一个线程一直占着一个资源不放而导致其他线程得不到执行。饥饿可以通过先来先服务FCFS来避免,等待最久的进程会是下一个被调度的进程

第四章 MEMORY MANAGEMENT 内存管理

1.概述

内存(RAM)是计算机中一种需要认真管理的重要资源

分层存储体系(memory hierarchy):在此体系中计算机有若干兆快递,昂贵且易失性的高速缓存(Cache)数千兆(GB)速度与价格适中且同样易失性的内存,以及几兆兆(TB)低俗、低廉、非易失性的磁盘存储,另外还又诸如DVD和USB等可移动存储装置。操作系统的工作是将这个存储体系抽象为一个有用的模型并管理这个抽象模型。

操作系统中管理分层存储器体系的部分成为存储管理器——有效内存管理

2.无存储器抽象

最简单的存储器抽象就是根本没有抽象,每一个程序直接访问物理内存

实现并行=>使用多线程来编程

在不使用存储器抽象的情况下,运行多个程序。操作系统只需要把当前内存保存到磁盘文件中,然后把下一程序读入到内存中再运行即可,只要在某一时间内存中只有一个程序,那么就不会发生冲突

2.一种存储器抽象:地址空间 address space

·地址空间为程序创造了一种抽象的内存,地址空间是一个进程可用于地址内存的一套地址集合

·每个进程都有一个自己的地址空间,并且这个地址关键独立于其他进程的地址空间(除了在一些特殊情况下进程需要共享它们的地址空间外)

      方法:动态重定位dynamic relation:把每个进程的地址空间映射到物理内存的不同部分。在逐条指令执行时,完成地址转换,在装载时无需重定位

    (静态重定位static relation:用户程序加载到内存时,一次性实现逻辑地址到物理地址的转化,把作业装入内存时的地址变化,当一个程序装载到地址x时,常数x被加到每一个程序地址上)

     给CPU配置2个特殊硬件寄存器:基址寄存器+界限寄存器,缺点:每次访问内存都需要进行加法和比较运算

·管理内存的两种方式即解决内存过载:①交换 swapping ②虚拟内存 virtual memory

why管理内存?=>内存超载:当所有要执行的进程需要的内存大于计算机的物理内存时,就不能把所有进程一直保存在内存中

①交换:把一个进程完整地调入内存,使该进程运行一段时间,然后把它存回磁盘,空闲进程主要存储在磁盘上就不会占用内存

交换再内存中产生了多个空闲区(hole),通过把所有的进程尽可能向下移动,有可能将这些小的空闲区合成一大块swapping creates holes,combine them,该技术称为——内存紧缩(memory compaction)

②虚拟内存:针对主存的抽象的计算机内存管理技术

每个程序拥有自己的地址空间,这个看空间被分割成多个快,每一块称作页或页面(page)。每一页有连续的地址范围,这些页被映射到物理内存,但不是所有的页都必须在内存中才能运行程序,当程序引用到一部分不在物理内存中的地址空间时,由操作系统负责将缺失的部分装入物理内存并重新执行失效的指令。

优:可以弥补物理内存大小的不足,一定程度提高反应速度,减少对物理内存的读取从而保护内存延长使用寿命,可在较小的可用内存中执行较大的用户程序,可在内存中容纳更多的程序并发执行,不影响编程时的程序结构

缺:占用一定的物理硬盘空间,加大了对硬盘的读写,设置不当会影响整机稳定性与速度

3.虚拟内存和物理内存管理

·物理内存的管理方式

①bitmaps 位图

memory is divided up into allocation unit(分配单元)

分配单元的大是一个重要的设计因素,分配单元越小,位图越大

缺点:查找位图中指定长度的连续0串是耗时的操作

②linked list 链表管理

维护一个记录已分配内存段和空间内存段的链表,其中链表中的一个节点或者包含一个进程,或者是两个进程间的一块空闲区

链表中每一个结点都包含以下域:空闲区(H)或进程(P)的指示标志,起始地址,长度和指向下一结点的指针

·当按照地址顺序在链表中存放进程和空闲区时,有几种算法可以用来为创建的进程分配内存

①first fit 首次适配

存储管理器沿着链表进行搜索,直到找到一个足够大的空闲区,除非空闲区大小和要分配的空间大小正好一样,否则将该空闲区分为两部分,一部分供进程使用,另一部分形成新的空闲区——每次都从头开始扫描,找到大于等于所需空间的节点

②next fit 下次适配

同上,但每次找到合适的空闲区时都记录当时的位置,以便下次寻找空闲区时从上次结束的地方开始搜索,不像首次适配每次都从头开始——从上次结束的地方开始,不是从头开始

③best fit 最佳适配

搜索整个链表(从开始到结束)找出能够容纳进程的最小空闲区

缺点:慢,浪费内存(产生大量小而无用的空闲区)

④worst fit 最差适配

总是分配最大的可用空闲区

⑤quick fit 快速适配

为那些常用大小的空闲区维护单独的链表

·分页:paging

大部分虚拟内存系统都使用分页技术

由程序产生的地址成为虚拟地址——>构成了虚拟空间

在使用虚拟内存的情况下,虚拟地址被送到内存管理单元(MMU:memory management unit)MMU把虚拟地址映射为物理内存地址

虚拟地址空间按照固定大小划分被称为页面(page)的若干单元,在物理内存中对应的单元成为页框(page frame)   页面和页框的大小通常是一样的

The virtual address space is divided into fixed-size units called page.The corresponding units in the physical memory are called page frame.The pages and page frame are generally the same size.

虚拟地址被分为虚拟页号(高位部分)和偏移量(低位部分)

       虚拟页号可用作页表的索引,以找到该虚拟页面对应的页表项:由页表项可以找到页框号,把页框号拼接到偏移量的高位端,以替换掉虚拟页号形成送往内存的物理地址

·将虚拟地址映射为物理地址的过程:

虚拟地址划分为:页面号+偏移量,前者计算页面个数,后者计算页面大小。若给定一个虚拟地址的空间中的地址为A,页面大小为L,页号P和页内偏移量offset:

       P=A/L(向下取整) offset=A mod L

·页表:分页系统中,允许将进程的每一页离散地存储在内存地任一物理块中,为了能在内存中找到每个页面对应的物理块,系统为每个进程建立一张页表,用于记录进程逻辑页面与内存物理页面之间的对应关系。页表的作用是实现从页号到物理块号的地址映射,地址空间有多少也,该页表里就登记多少行,且按照逻辑页的顺序排列。

·加速分页过程 speeding up paging

①使用由“快速硬件寄存器”阵列组成单一页表,每一个表项对应一个虚拟页面,虚拟页号作为索引,当启动一个进程时,操作系统把保存在内存中的进程页表的副本载入到寄存器中——页表很大,代价高昂

②整个页表都在内存中

转换检测缓冲区 TLB:Translation Lookaside Buffer/相联存储器,快表

将虚拟地址直接映射到物理地址,不再访问页表

·针对大内存的页表,处理巨大的虚拟地址空间

①采用多级页表 Multilevel Page Tables:避免把全部页表一直保存在内存中

②倒排页表 Inverted Page Tables:实际内存中的每个页框对应一个表项

4.Page replacement algorithms 页面置换算法

解决缺页中断,操作系统在内存中选择一个页面将其换出内存,为即将调入的页面腾出空间

①最优页面置换算法 The Optimal Page Replacement Algorithm (OPT)

最理想的置换算法,但不可能实现,可以保证获得最低的缺页率,每次选择未来长时间不被访问的或者以后永不使用的页面进行淘汰

②最近未使用算法 The Not Recently Used Page Replacement Algorithm(NRU)

系统为每一页面设置2个状态位

当页面被访问(读或写)时设置访问位R位;当页面(即修改页面)被写入时设置修改为M位,启动一个进程时,它的所有页面的两个位都由操作系统设置成0,R位被定期地(比如在每次时钟中断时)清0,以区别最近没有被访问的页面和被访问的页面

根据当前的R位和M位分为4类:

第0类:没有被访问,没有被修改 0 0  第1类:没有被访问,已经被修改 0 1

第2类:已经被访问,没有被修改 1 0  第3类:已经被访问,已经被修改 1 1   

随机地从类编号最小的非空类中挑选一个页面淘汰

③先进先出置换算法 The First-In, First-Out Page Replacement Algorithm (FIFO)

当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰,实现简单,性能最差

④第二次页面置换算法 The Second-Chance Page Replacement Algorithm

FIFO算法可能会把经常使用的页面置换出去,为避免该问题,对该算法做一简单修改

检查最老页面的R位:若R位是0,那么这个页面既老又没有被使用,可以立即置换掉

                                   若R位是1,将R位清0,并把该页面放到链表的尾端,修改它的装入时间使它就像刚装入的一样,然后继续搜索

⑤时钟页面置换算法 The Clock Page Replacement Algorithm

把所有的页面都保存在一个类似钟面的环形链表中,一个表针指向最老的页面

⑥最近最少页面置换算法 The Least Recently Used Page Replacement Algorithm (LRU)

淘汰在最近一段时间内最久不用的页面(淘汰队尾访问次数最少的),代价昂贵

⑦工作集页面置换算法 The Working Set Page Replacement Algorithm

请求调页:demand paging 页面在需要时调入而不是预先装入

一个进程当前正在使用的页面的集合成为它的工作集 working set

若每执行几条指令就发生一次缺页中断,则称发生颠簸(thrashing)

确保进程运行前,它的工作集就已经在内存中——称为工作集模型

        目的在于减少缺页中断率

        在进程运行前预先装入其工作集页面成为预先调页

⑧工作集时钟页面置换算法 The WSClock Page Replacement Algorithm

所需的数据结构以页框为元素的循环表

算法小结:

·page fault缺页中断:缺页中断是一种特殊的中断,与一般的区别是:在指令执行期间产生和处理中断信号,一条指令在执行期间可能发生多次缺页中断

这里还有讲的很好关于页面置换算法:

页面置换算法及例题 - boobo - 博客园 (cnblogs.com)

5.段式与页式管理

分段存储管理原理:降序地址空间按逻辑结构关系分成若干段,每段有自己的段名,且都是从0地址开始的地址空间,段的长短可变,划分后的地址结构为:段号(S)+段内地址(W)

分段存储管理的特点:

       实现了离散存储及虚拟存储,段可动态增长;便于实现共享;更多的硬件支持及更大的系统开销;内存碎片不如页式管理解决的好;段的大小仍然受可用分区大小的限制

段页式存储管理原理:地址空间按逻辑分段,并各有自己的段号,形成二维的地址空间;对每个逻辑段,又按照分页方式划分成大小固定的”页“,最后不足一页的部分仍占一页,得到的虚地址结构如下: 段号(S)+页号(P)+页内地址(D)

6.分页系统中的设计问题

·局部分配策略和全局分配策略:

局部页面置换:为每个进程分配固定的内存片段;全局页面置换:可运行的进程动态分配页框

·load control 负载控制:

减少竞争内存的进程数的一个方法:将一部分进程交换到磁盘,并释放他们所有的页面

·shared page 共享页面:

两个进程通过共享程序页表来共享同一个程序

·shared library 共享库:

在Windows中成为DLL动态链接库(Dynamic Linked Library),当一个进程和一个共享库连接时,连接器并没有加载所有的函数,有的函数只是加载了一段能在运行时绑定被调用函数的存根历程,当一个共享库被装载和使用时,整个库并不是一次性并装入内存,而是根据需要,以页面为单位装载的,没有被调用的函数是不会被装入内存的

·memory-mapped file 内存映射文件:

进程可以通过发起一个系统调用,将一个文件映射到其虚拟地址空间的一部分

第五章 FILE SYSTEM 文件系统

长期存储信息有三个基本要求:

①能够存储大量信息

②使用信息的进程终止时,信息仍旧存在

③必须能使多个进程并发访问有关信息

1.file 文件

Files are logical units of information created by process.文件是进程创建的逻辑单元,文件受OS管理,OS中处理文件的部门成为文件系统。

·file structure 文件结构 三种文件结构:

                          ①byte sequence 字节序列

                          ②record sequence 记录序列

                          ③tree 树

·file types 文件类型

        UNIX,Windows:regular file and directors 常规文件和目录文件(目录文件是管理文件系统结构的系统文件)

        UNIX中还有character special file 字符特殊文件(与输入/输出有关),block special file 块特殊文件(用于磁盘类设备)

  regular files 中有ASIC Ⅱ文件、 binary 文件(二进制文件)

·file access 文件访问

        ①sequential access 顺序访问:可从头按顺序读取文件的全部字节或记录,不能跳过,也不能不按顺序

        ②radom access 随机访问:以任何次序读取其中字节或记录的文件

文件存取:

        早期:磁带

        磁盘:按照关键词key存取

·file operations 文件操作

create、delete、open、close、read、write、append、seek、get attributes、set attributes、rename

2.directories 目录

·single-level directory system 一级目录

在一个目录中包含所有的文件(根目录)

·hierarchical directory system 层次目录系统

使用目录树,用户可以创建任意数量的子目录

·path name 路径名

absolute path name:绝对路径名:由从根目录到文件的路径组成

relative path name:相对路径名:和工作目录(也称当前目录)一起使用

·directory operations 目录操作

create、delete、opendir、closedir、readdir、rename、link、unlink

3.file-system implementation 文件系统的实现

·file-system layout 文件系统布局

文件系统放在磁盘上,多数磁盘划分为一个或多个分区,每个分区有一个独立的文件系统

从磁盘0号扇区成为主引导记录(Master Boot Record,MBR),用来引导计算机 

MBR is used to boot the computer.When the computer is booted, the BIOS reads in and executes the MBRThe first thing the MBR program does is locate the active partition, read in its firstblock, which is called the boot block, and execute it. The program in the bootblock loads the operating system contained in that partition. 在计算机被引导时,BIOS读入并执行MBR。MBR做的第一件事是确定活动分区,读入它的第一个块,称为引导块(bootblock),并执行之。引导块中的程序将装载该分区中的操作系统。

·implementing files 文件的实现

①contiguous allocation 连续分配

优点:实现简单、读操作性能好

缺点:随着时间推移,磁盘变得零碎

②linked-list 链表分配

优点:充分利用每个磁盘块

缺点:随机访问极慢

③linked-list allocation using a table in memory 采用内存中的表进行链表分配

FAT(file allocation table):文件分配表

优点:整个块都可以存放数据,随机访问容易

缺点:必须把整个表都存放在内存中

④i节点

只有在对应的文件打开时,其i节点才在内存中

·implementing directories 目录的实现

①把文件属性直接存放在目录项中

②对于采用i节点的系统,把文件属性存放在i节点而不是在目录项中

·OS如何支持可变长度的长文件名

①给予文件名一个长度限制

②每一个目录设有一个固定部分,固定长度的头的后面是一个任意长度的实际文件名(缺点:当移走文件后,引入了长度可变的空隙,下一个文件不一定适合空隙,会发生缺页中断)

③使目录项自身都有固定长度,而将文件名放置在目录后面的堆中

·shared file 共享文件

需要解决一个问题:如果目录中包含磁盘地址,则当链接文件时,必须把C目录中的磁盘地址复制到B目录中。如果B或C随后又往该文件中添加内容,则新的数据块将只列入进行添加工作的用户的目录中。其他的用户对此改变是不知道的——下面两种解决方法:

①磁盘块不列入目录,而是列入一个与文件本身关联的小型数据结构中,目录指向这个小型数据结构——这是UNIX中所采用的方法(小型数据结构是i节点)——硬链接

②系统建立一个类型为LINK的新文件,并把该文件放在B的目录下,使B和C的一个文件存在链接,新的文件中只包含了它所连接的文件路径名,当B读该链接文件时,操作系统查看要读的文件是LINK类型,则找到该文件所连接的文件的名字,并读文件——符号链接 symbolic linking((软连接)

4.file-system management optimization 文件系统管理和优化

·disk-space management 磁盘块空间管理

存储一个有n个字节的文件:①分配n个字节的连续磁盘空间 ②把文件分成很多个连续(或是不一定连续)的块

·file-system backups 文件系统备份

问题:①从意外的灾难中恢复 ②从错误的操作中恢复

解决:磁盘转出到磁带上:

①physical dump 物理转储

从磁盘的第0块开始,将全部的磁盘块按序输出到磁带上,直到最后一块复制完毕。

优点:简单、快捷 

缺点:既不能跳过选定的目标,也无法增量转储,还不能满足个人文件的请求

②logical dump 逻辑转储

从一个或几个指定的目录开始,递归地转储其自给定基准日期后有所更改的全部文件和目录,还转储通向修改过的文件或目录的路径上的所有目录(甚至包括未修改的目录)

·file-system consistency 文件系统的一致性(——>影响文件系统的可靠性)

读取磁盘块->修改->写回磁盘,若在修改过的磁盘块全部写回之前系统崩溃,文件系统有可能处于不一致

一致性检查分为两种:块的一致性检查,文件的一致性检查

·file-system performance 文件系统性能

优化:

①caching 高速缓存:

常用的减少磁盘访问次数技术是块高速缓存(block cache)/缓冲区高速缓存(buffer cache),如果高速缓存已满,此时需要调入新的块,则要把原来的某一块调出高速缓存(如果要调出的块再上次调入以后修改过,则要把它写回磁盘)

write-through caches:通写高速缓存(将高速缓存中所有被修改的块立即写回磁盘)

②block read ahead 块提前读:

在需要用到块之前,试图提前将其写入高速缓存,从而提高命中率,块提前读策略只适用于实际顺序读取的文件

③reducing disk-arm motion 减少磁盘臂运动:

把有可能顺序访问的块放在一起,最好在同一个柱面上,从而减少磁盘臂的移动次数

第六章 INPUT/OUTPUT 输入输出

主要功能:

①send commands to the devices 向设备发送命令

②catch interrupts 捕捉中断

③handle errors 处理设备各种错误

④provide an interface between the devices and the rest of the system that is simple and easy to use 提供接口:设备和系统其他部分之间

1.principles of I/O hardware I/O硬件原理

·I/O devices I/O设备

        ·block devices  块设备:

         把信息存储在固定大小的块中,每个块有自己的地址。每个块都能独立于其他块读写(硬盘、蓝光光盘、USB盘)

        ·character device  字符设备:

         以字符为单位发送或接收一个字符流,而不考虑任何块结构,字符设备是不可寻址的,也没有任何寻道操作

·Device controllers 设备控制器

        mechanical component 机械部件  electronic component 电子部件

·Memory-Mapped I/O 内存映射I/O

每个控制器有几个寄存器用来与CPU进行通信

写入寄存器:操作系统可以命令设备发送数据、接收数据、开启或关闭,或者执行某些其他操作

读取寄存器:了解设备状态,是否准备好接收新命令

OS可以读写的data buffer(数据缓冲区:供程序或OS写入数据)

控制寄存器和数据缓冲通信:

①每个control register 被分配一个I/O端口

②PDP-Ⅱ引入将所有的control register映射到内存空间中,每个control register被分配唯一的一个内存地址,并且不会有内存分配这一地址

                                                                                                                ——内存映射I/O

优点:内存映射I/O,I/O驱动程序可以用C编写,如果不用内存映射I/O则要使用汇编代码;对于内存映射I/O,不需要特殊保护机制来组织用户进程执行I/O操作;对内存映射I/O,可以引用内存的每一条指令也可以引用控制寄存器

缺点:对一个设备控制器进行高速缓存可能是灾难性的;在内存映射的机器上有单独的内存总线的麻烦是I/O设备没有办法查看内存地址

·Direct Memory Access 直接存储存取 DMA

是一种给快速传递数据的机制,里应用DMA进行数据传输时不需要CPU的参与,数据直接在源地址和目的地址之间传递,不需要中间媒介,DMA能够独立于CPU而访问系统总线

·Interrupts 中断

当一个I/O设备完成交给它的工作时,它就产生一个中断(该中断信号被主板上的中断控制芯片检测到)

处理中断:中断控制器在地址线上放置一个数字表明哪个设备需要关注,并且直起一个中断CPU的信号

interrupt vector中断向量

precise interrput精确中断:将机器留在一个明确状态的中断上,有四个特性:

①The PC(program counter)is saved in a known place.PC保存在一个已知的地方

②All instructions before the one pointed to by the PC have fully executed.PC所指向的指令之前的所有指令已经完全执行

③No instruction beyond the one pointed to by the PC has been executed.PC所指向的指令之后的所有指令都未执行

④The execution state of the instruction pointed to by the PC is known.PC所指向的指令的执行状态是已知的

不满足的叫做imprecise interrupt

2.Principles of I/O software I/O软件原理

·goals of the I/O software I/O软件目标

①device independence 设备独立性:程序可以访问任意I/O设备而无需事先指定设备

②uniform naming 统一命名:名字不依赖设备

③error handing 错误处理:错误尽可能地在接近硬件的层面得到处理

④synchronous (阻塞)同步和asynchronous 异步(中断驱动)

⑤buffering 缓冲:数据必须预先放置到输出缓冲区之中

⑥sharable/dedicated devices 共享和独占设备的问题

·programmed I/O 程序控制I/O——I/O实现方式之一

让CPU做全部工作,缺点:直到全部I/O完成之前要占用CPU的全部时间

·Interrputs-Driven I/O 中断驱动I/O——I/O实现方式之一

允许CPU在等待打印机变为就绪的同时做某些其他事情—使用中断进行一次上下文切换并且运行其他进程。缺点:中断发生在每个字符上,中断要花费时间—浪费一定数量的CPU时间

·I/O using DMA 使用DMA的I/O——I/O实现方式之一

将中断次数从打印每个字符一次减少到每个缓冲区一次

3.I/O software layers  I/O软件层次

·Interrupts Handlers 中断处理程序

隐藏中断:启动一个I/O操作的驱动程序阻塞,直到I/O操作完成并且产生一个中断,驱动程序可以阻塞自己

·Device Drivers 设备驱动程序

最明显的功能:accept abstract read and write requests from the device-independent software above it and see that they are carried out.接受来自上方与设备无关的软件送发出的抽象的读写请求,并且目睹这些请求被执行。

每个连接到计算机上的I/O设备都需要某些设备特定的代码来对其进行控制

·Device-Independent I/O software 与设备无关的I/O软件

与设备无关的I/O软件的功能:

基本功能:执行所有设备公共的I/O功能,并且向用户层软件提供一个统一的接口

①uniform interfacing for device divers 设备与驱动程序的统一接口,设置standard driver interface(标准驱动程序接口)=>所有驱动程序都有相同的接口

②buffering 缓冲

③error reporting 错误报告

④allocating and releasing dedicated devices分配与释放专用设备

⑤device-independent block size 与设备无关的块大小

      ·user-space I/O software 用户空间的I/O软件

      多道程序设计系统中处理独占I/O设备的方法:

      ①spooling假脱机 ②daemon守护进程and spooling directory假脱机目录

4.Disks 盘

·Disk hardware 盘硬件

        ·Magnetic Disks 磁盘:读写速度同样快

        磁盘被组织成柱面,每个柱面包含若干磁道,磁道数与垂直堆叠的磁头个数相同,磁道又被分成若干扇区,软盘上大约每条磁道上扇区的数目可以多达几百个,磁头数大约是1~16个

        磁盘的分类:①IDE磁盘,特点:价格低廉,兼容性强,性价比高,数据传输慢,不支持热拔插等 ②SCSI磁盘:传输速率高,读写性能好,运行稳定,可连接多个设备,可支持热拔插  ③SATA磁盘:结构简单,支持热拔插 ④USB

A device feature that has important implications for the disk driver is the possibility of a controller doing seeks on two or more drivers at the same time.These are known as overlapped seek.(重叠寻道) 控制器是否同时可以控制两个或多个驱动器进行寻道

        ·Disk Formatting 磁盘格式化=>将分区格式化成不同的文件系统

一个扇区格式:

前导码:以一定的位模式开始,位模式使硬件得以识别扇区开始,前导码还包含柱面与扇区号以及其他信息,数据部分的大小是有由低级格式化程序决定的,大多数磁盘使用512个字节的扇区

ECC(Error Correction Code):包含冗余信息,可以用来恢复错误

设置低级格式时,每个磁道上第0扇区的位置与前一个磁道存在偏移——柱面斜进cylinder skew

         ·Disk Arm Scheduling Algorithms 磁盘臂调度算法

     读写磁盘块时间影响因素:

     ①seek time 寻道时间(将磁盘臂移动到适当的柱面上所需的时间,最主要的影响)

     ②rotational delay 旋转延迟(等待适当扇区旋转到磁头下所需的时间)

     ③actual data transfer time 实际数据传输时间

     算法:

     ①FCFS(先来先服务)

     具有40个柱面的假想磁盘,假设柱面11上一个数据块的请求到达。当对柱面11正在寻道时,又按顺序到达了对柱面1、36、16、34、9和12的请求,让他们进入来完成的请求表

     ②SSF(最短寻道优先)

     处理与磁头距离最近的请求以使寻道时间最小化,按上述题目,移动顺序为13、9、16、1、34和36,磁盘臂分别移动1、3、7、15、33和2个柱面,共移动61个柱面

     缺点:若磁盘负载很重,那么大部分时间磁盘臂将停留在中部区域,其余部分产生饥饿

     ③elevator algorithm 电梯算法

     对于任意的一组给定请求,磁盘臂移动总次数的上界是固定的,正好是柱面的2倍

        ·error handing 错误处理

     处理坏块:①substituting a space for the bad sector用备用扇区替换坏扇区

                       ②shifting all the sectors to bypass the bad one移动所有扇区以回避坏扇区

        ·stable storage 稳定存储器

     使用一对完全相同的磁盘,对应的块一同工作形成一个无差错的块,当不存在错误时在两个驱动器上对应的块是相同的,读取任意一个都可以得到相同的结果,为了到达这一目的,定义三个操作:①stable write稳定写 ②stable read稳定读 ③crash recovery崩溃恢复

5.Clocks 时钟

时钟负责维护时间,并且防止一个进程垄断CPU,时钟软件可以采用设备驱动程序的形状

·clock hardware时钟硬件

2种类型:①简单的——被连接到110v-220v的电源线上,每个电压周期产生一个中断,频率是50Hz或60Hz

                ②由三个部件构成的:a.crystal oscillator晶体震荡管

                                                    b.counter 计数器(在每一个时钟周期递减)

                                                    c.holding register 存储寄存器(用于加载计数器)

·clock software 时钟软件

duties:

①Maintaining the time of day维护日时间

②Preventing processes from running longer than they are allowed to.防止进程超时运行

③According for CPU usage.对CPU的使用情况记账

④Handling the alarm system call made by user processes.处理用户进程提出的alarm系统调用

⑤Providing watching timers for parts of the system itself.=>检测死机等,为系统本身的个各个部分提供监视定时器

⑥Doing profiling,monitoring,and stastics gathering.完成概要剖析、监视和统计信息收集表

·soft timers 软定时器

大多数计算机拥有辅助可编程时钟,可以设置它以程序需要的任何速率引发定时器中断

soft timer避免了中断

6.User interfaces:beyboard、mouse、monitor 用户界面

·input software 输入软件:keyboard software键盘软件、mouse software 鼠标软件

·output software 输出软件:Text windows 文本窗口、The X Windows system X窗口系统、Graphical user interface 图形用户界面、Bitmaps 位图、Fonts 字体、Touch screens 触摸屏

7.Thin clients 瘦客户机

无状态的低级接口机

8.Power management 电源管理

桌面PC通常有200w的电源,2种减少能量消耗的一般方法:

①当计算机的某些部件(主要是I/O设备)不用的时候由OS关闭它们

②应用程序使用较少的能量

第七章 VIRTUALIZATION虚拟化

·虚拟机监控程序Virtual Machine Monitor(VMM)

advantages:①一台虚拟机故障不会影响其他虚拟机(强隔离性)

                      ②物理机数量的减少节省了硬件和电力开销以及机架空间的占用

                      ③设置检查点和虚拟机过程比在普通操作系统上运行的迁移要容易

                      ④在已运行支持或无法工作于当前硬件的OS上运行遗留应用程序

                      ⑤协助软件开发,确保软件在不同OS上可以操作

·requirement for virtualization 虚拟化必要条件

①safety安全性 ②Fidelity保真性 ③efficiency高效性

·Type 1 and Type 2 hypervisors第一、二类虚拟机管理系统

第二类虚拟机管理程序有时又称托管型虚拟机(管理程序)

·修改客户系统的源代码->半虚拟化的客户执行虚拟化调用而不是敏感指令

虚拟机管理程序必须定义一套调用接口,以供客户OS调用

有意删除某些敏感指令的客户操作系统成为半虚拟化paravirtualization

第八章 MULTIPLE PROCESSOR SYSTEMS多处理机系统

获得更高速的处理方法:

大规模使用并行计算机->在高强度的数据处理中经常采用高强度并行计算机

1.Multiprocess 多处理机(多核)

shared-memory multiprocessor共享存储器多处理机

其两个或更多的CPU全部共享访问一个公用的RAM

·Multiprocessor Hardware多处理机硬件

所有的多处理机都具有每个CPU可访问全部存储器的性质

        UMA(uniform memory access,统一存储器访问)

        读出每个存储器字的速度是一样快的,NUMA(非一致存储器访问)则没有这种性质

       (1)UMA Multiprocessors with Bus-Based Architecture基于总线的UMA多处理机体系结构

         三类基于总线的多处理机:①without caching没有高速缓存 ②with caching有高速缓存 ③with caching and private memories有高速缓存与私有存储器

       (2)UMA Multiprocessors Using Crossbar switches基于交叉开关的UMA多处理机

         优点:是非阻塞网络 缺点:交叉点数量以n^2增长,不适用大规模的优化       

       (3)UMA Multiprocessors Using Multistage Switching Network基于多级交换网络的UMA多处理机

         以2x2开关构建大型多级交换网络

       (4)NUMA Multiprocessors NUMA多处理机

         与其他多处理机的主要区别:

         ①There is a single address space visible to all CPUs.具有对所有CPU都可见的单个地址空间

         ②Access to remote memory is via LOAD and STORE instructions.通过LOAD和STORE指令访问远程存储器

         ③Access to remote memory is slower than access to local memory.访问远程存储器鳗鱼访问本地存储器

·Multiprocessor Synchronization多处理机调度

①Time sharing 分时(时间维度)

使用单一数据结构调度一个多处理机=>匹配、易于实现、但效率差,未考虑进程体量

由所有CPU使用的单个调度数据结构共享这些CPU

②space sharing 空间共享(空间维度)

在多个CPU上同时调度多个线程

消除了多道程序设计,从而消除了上下文切换的开销——CPU被阻塞时浪费时间——群调度解决

③Gang scheduling 群调度

协同调度的发展产物,群调度分为三个部分:

①Groups of related threads are scheduled as a unit,a gang.把一组相关线程作为一个单位,即一个群,一起调度

②All members of a gang run at once on different timeshared CPUs.一个群中的所有成员在不同分时CPU上同时运行

③All gang members start and end their time slices together.群中所有成员共同开始和结束其时间片

·多处理机操作性有类型

①每个CPU有自己的操作系统 ②主从多处理机 Master-Slave

③对称多处理机Symmetric Multiprocessors/SMP——asymmetric multiprocessors非对称多处理机

2.Multicomputers 多计算机(多机)

message-passing multicomputers消息传递多计算机

多计算机是紧耦合CPU,不共享存储器,每台计算机有自己的存储器

多计算机别名cluster computers 机群计算机、clusters of workstations工作站机群

·Multicomputer Hardware 多计算机硬件

一个多计算机系统基本节点包括一个CPU、存储器、一个网络接口,有时还有一个硬盘

        ·interconnection technology互连技术

         交换机制:①存储转发包交换 ②电路交换

        ·network网络接口

·low-level communications software 低层通信软件

·user-level communication software 用户层通信软件

        ·send and receive通信服务简化至2个:send 和receive

        ·blocking verus nonblocking calls阻塞和非阻塞调用

·remote produre call 远程过程调用

         允许程序调用位于其他CPU中的过程

·Multicomputer scheduling多计算机调度

        ·load balance负载平衡

                ·A Graph-Theoretic Determinsitc Algorithm图论确定算法

                ·A Sender-Initiated Distributed Heuristic Algorithm发送者发起的分布式启发算法

                ·A Receiver-Initiated Distributed Heuristic Algorithm接收者发起的分布式启发算法

3.Distributed system 分布式系统    

wide area distributed system广域分布式系统

和多机相比,耦合度更加松散

·network hardware网络硬件:Ethernet以太网、Internet因特网

·network services and protoclos网络服务和协议

第九章 SECURITY 安全

1.The security environment 环境安全

·threats威胁

信息系统安全分为三部分:

①confidentiality机密性 ②integrity完整性 ③availability可用性

·attackers入侵者

2.controlling access to resources保护机制

·protection domains保护域:将域作为对象的保护矩阵

·access control list访问控制列表ACL:包含了所有可访问对象的域以及这些域如何访问对象的方法

·capabilities权能字

每个单独的项目叫做权能字

权能字列表:与每个进程关联的是可访问的对象列表以及每个对象上可执行操作的指示

       作用:防止用户篡改——>已知保护方法:

                                                 ①a tagged architecture建立带标记的体系结构

                                                 ②keep the C-list inside the os在OS内保存权能字列表

                                                 ③keep the C-list in user space,but manage the capabilities cryptographically把权能字列表放在用户空间中并用加密的方法管理

3.authentication认证

登陆系统考虑的三点:

①something the user knows用户已知的信息

②something the user has用户已有信息

③something the user is用户是谁

physical object物理识别的认证、Biometrics生物识别认证、password密码认证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值