操作系统原理及应⽤
操作系统原理及应⽤
第1章操作系统概论
现代计算机系统⼀般采⽤多任务并发执⾏⽅式,计算机的资源不是有⼀个程序在运⾏时单独占⽤,⽽是由多个并发运⾏的程序共享使⽤。操作系统的⽬标之⼀就是同⼀管理分配计算机系统资源。 处理机管理
处理机的任务是运⾏程序,程序在某个数据对象上的⼀次运⾏过程称为进程,所以处理机管理⼜称进程管理。 进程控制:进程是程序的⼀次动态运⾏过程,其⽣存期内从产⽣到消亡经过了⼀系列的状态转换。操作系统提供了⼀些原语对进程状态转换进⾏控制。原语是指在运⾏过程中不可中断的、完成某⼀功能的⼀段程序,作为操作系统的内部功能模块存在。
学生枕进程通信:多道程序环境下,可以有系统为⼀个应⽤程序建⽴多个进程,这些进程相互合作,完成某⼀个任务。他们之间的交换信息称为通信
进程同步:在多道程序中,多个并发进程处在同⼀运⾏环境中,必然存在某种联系,如进程之间的资源共享和进程之间的协作。操作系统必须采⽤⼀定的策略来处理并发进程之间的约束关系,使各进程能顺利运⾏,即使各进程同步协调运⾏。
操作系统
计算机系统采⽤了冯·洛伊曼的存储程序原理,即把要运⾏的程序⼀次性存放在存储器中,然后⼜处理机⾃动从存储器中⼀次取出程序指令运⾏,处理机的运⾏过程就是不断地取指令,执⾏指令循环往复的过程。每次取⼀条指令,执⾏⼀条指令。
操作系统提供了如下的存储管理功能:
内存分配: 为每道程序分配⼀定的存储空间。制定分配策略是应以提⾼内存利⽤率为⽬标
地址转换: ⼀个程序经过编译后,形成多个⽬标程序,这些程序经过连接⽽形成可装⼊(执⾏)程序。在可执⾏程序中,有⼀些指令中包含内存地址码,要访问改地址处存放的数据或指令,如内存单元和CPU寄存器之间的数据传送指令中包含数据的内存地址码,转移指令中包含指令的内存地址码。在程序装⼊内存之前,⽆法确定程序在内存中的实际存放位置,因此必须建⽴⼀个虚拟内存地址空间,将整个程序放在这个虚拟内存地址空间中,每个数据和指令都有⼀个唯⼀确定的虚拟内存地址, 这个地址称为逻辑地址空间,相对的称实际内存地址空间为物理地址空间。程序和数据必须装⼊内存才能被CPU访问并执⾏,程序和数据存⼊内存之后占据⼀定的物理内存地址空间,程序的逻辑地址空间往往和物理地址空间不重合,⽽程序最后是在物理地址空间运⾏的,即访问程序中的指令和数据时是按照其所在的实际内存地址进⾏的,所以要正确的访问数据和指令必须要把指令中的逻辑地址转换成物理地址,这⼀操作称为地址转换,⼜称重定位
内存扩充: ⽅法1:进程的整体交换,将⼀段时间内不运⾏的进程的代码和数据暂时撤出内存,,需要⽤的时候再去调⼊内存。
⽅法2: 进程的部分载⼊,给进程分配少量内存,先装⼊⼀部分开始运⾏ ,当访问不在内存中的部分时,再调⼊内存
内存保护: 确保每道程序都在⾃⼰的内存空间运⾏,互不⼲扰。不运⾏⽤户程序访问操作系统的程序和数据,也不允许访问存取其他程序的存储空间
第2章进程管理
顺序执⾏:⼀个按严格次序、顺序执⾏的操作序列。把⼀个具有独⽴功能的程序独占处理机直到最后结束的过程称为顺序执⾏。 特征:顺序性,封闭性(封闭环境下运⾏的),可再现性(最终结果可以再现,只要输⼊相同,结果⼀定相同)
并发执⾏: 指多道程序在同⼀时间间隔内同时发⽣,增强计算机系统的处理能⼒,提⾼资源的利⽤率。⼀组逻辑上相互独⽴的程序或程序段,在执⾏过程中时间在客观上相互重叠,即⼀个程序尚未结束,另⼀个程序段执⾏已经开始的⼀种执⾏⽅式。特性:间断性(程序资源相互制约导致的),失去封闭性,不可再现性
进程的定义: 进程是动态的、有⽣命周期的活动。内核可以创建⼀个进程,最终将由内核终⽌该进程时期消亡。
进程的特征: 动态性:进程是进程实体的执⾏过程;并发性:多个进程实体,共存于内存中,能在⼀段时间内同时执⾏;独⽴性:进程是⼀个能独⽴运⾏的基本单元;异步性:进程按各⾃独⽴的、不可预知的速度向前推进。或者说是按异步⽅式运⾏;结构特征:进程实体是由程序段、数据段、进程控制块组成,也称这3部分进程映像。
进程的3个基本状态:就绪状态、执⾏状态、阻塞状态
进程通信:进程间的信息交换称为进程通信
线程:是进程中执⾏运算的最⼩单位,即执⾏处理及调度的基本单元。在引⼊现成的操作系统中,可以在⼀个进程内部进⾏线程切换,现场保护⼯作量⼩。⼀⽅⾯通过共享进程的基本资源⽽减轻系统的开销,另⼀⽅⾯提⾼了现场切换的效率。因此⼀个进程内的基本调度单位称为线程或者轻型进程。
等离子割线程在进程中派⽣出来,也可以在派⽣线程。
调度: 选择⼀个就绪进程使之进⼊执⾏状态。
阻塞:如果⼀个线程在执⾏过程中需要等待某个事件发⽣,则被阻塞,阻塞时,寄存器上下⽂、程序计数器以及堆栈指针都会得到保证
激活如果阻塞线程所等待的-事件发⽣则该线程被激活并进⼊就绪队列
玻尿酸蚕丝面膜线程的好处: 易于调度,提⾼了系统的效率,创建线程⽐进程的开销⼩,创建速度快,有利于发挥多处理器的功能,提⾼进程的并⾏性。
消息传递系统: 消息传递机制都是应⽤最为⼴泛的⼀种进程间通信的机制。在消息传递系统中,进程间的数据交换是以格式化的消息为单位的,在计算机⽹络中,⼜把message称为报⽂。程序员直接利⽤系统提供的⼀组通信命令进⾏通信。操作系统隐藏了实现通信的细节,提⾼了透明度,因此获得了较为⼴泛的使⽤。消息传递系统的通信⽅式属于⾼级通信⽅式,⼜因实现⽅式的不同分为直接通信⽅式和间接通信⽅式。
第3章处理及调度与死锁
⼀个批处理型作业从进⼊系统并驻留在外存的后备队列上开始,直⾄作业运作完毕可能要经历以下三级调度,即作业调度、对换和进程调度。
作业调度也叫作⾼级调度或长调度。作业进⼊系统之后先驻留在外存上,因此需要有作业调度过程,将其装⼊内存,并为它创建进程分配必须的资源。然后将创建的进程排在就绪队列上准备执⾏。
对换:按照给定的原则和策略,将外存上的进程调⼊内存获奖内存中的进程交换到外存。
进程调度: 低级调度或围观调度,主要任务是按照某种策略和算法,将处理机分配给⼀个处于就绪状态的进程。
实时进程的调度策略:Linux系统使⽤两种策略调度:先来先算法和时间⽚轮法,因为实时进程对时间响应要求较⾼,因此为了保证实时进程能够优先于普通进程⽽运⾏,内核为实时进程增加了第三种优先级,称为实时优先级。
死锁: 在多道程序设计环境中,若⼲程序往往需要共享计算机系统的资源,若⼲进程会竞争有限的资源,如果得不到满⾜就会陷⼊阻塞状态。也就是如下例:系统中两个进程都因等待对⽅的临界资源⽽不能继续运⾏的现象叫死锁。就跟强强引⽤⽆法释放最后内存泄漏⼀样严重的问题。死锁是指多个进程循环等待其他进程占有的资源,因⽽⽆限期僵持下去的局⾯,也可以说是进程之间⽆限期互相等待永不发⽣的事件。显然,如果没有外界的作⽤,死锁中的各个进程将永远处于阻塞状态。
死锁的原因:①各进程竞争有限的资源:(资源有可剥夺型资源和不可剥夺型资源,内存属于可剥夺性的资源。⼤多数情况下,死锁都是因为对不可剥夺型资源的竞争导致的)②进程推进顺序不当:如果让竞争者之⼀先运⾏资源就不会出现死锁,因此到⼀个合适、安全的进程推进顺序以保证系统正常的运⾏。
死锁的必要条件: ①互斥条件:⼀个排他性的资源,只能⼀个进程占有,只有占有该资源的进程放弃该资源后才能供其他资源使⽤。
②占有且申请条件:进程⾄少占有⼀个资源了,但现在⼜在申请新的资源。在等待新资源时,仍不释放已占有的资源。③不可抢占条
件:也叫不可剥夺条件:进程所获得的资源在使⽤完毕之前不能被申请者强制占有。④环路条件: 等待资源的进程形成⼀个环路, A 要B的, B要C的, C要A的。
解决死锁: 预防,避免,检测和解除
死锁的预防与避免:
摒弃占有条件: 在进程运⾏以前⼀次性分配所需的全部资源,要么都得到,要么就什么也得不到(缺点:执⾏前很难知道需要什么资源, 资源利⽤率第,降低并发性),或者要申请新的资源前,先释放
已占有的资源
摒弃不可抢占条件: 隐式抢占。约定已经占有资源的进程申请新的资源⽽不被满⾜时必须等待,同时释放已占有的资源,以后再申请。(实现起来较为困难)
摒弃环路条件: 实⾏资源的有序分配策略,也即把资源编号,按序分配使进程在申请占有时不会形成环路。所有进程对资源的请求必须严格按照资源序号递增的次序提出,保证不存在环路。
真空海绵吸盘死锁的避免: 安全状态:允许进程动态申请资源,系统提供某种⽅法在分配资源前计算是否会死锁,如果会就进程等待。系统中的所有进程按照某种次序分配资源,并且依次运⾏。如果存在这样⼀个安全的序列,则系统是安全的。
死锁的检测⼀种是在有资源请求的时候进⾏检测,但是次数过于频繁,另⼀种是周期性的检测
死锁定理: 如果资源分配图中环路通过简化的⽅式仍不能取消就⼀定会产⽣死锁,如果可以简化的⽅式取消则不⼀定会产⽣死锁。
死锁的解除:1.终⽌进程; 2.抢占资源
第 7 章 Linux⽹络基础
TCP/IP协议
l型密封圈
TCP/IP协议是由⼀组通信协议组成的协议簇,其核⼼部分包括传输层协议(TCP,UDP)、⽹络层协议(IP)和⽹络接⼝层,这三层在操作系统的内核中实现,⽽应⽤层如FTP、www等应⽤程序则通过⽹络编程接⼝(socket、Windows socket)与核⼼协议打交道。整个协议簇是⼀种分层结构,下层为上层提供服务,不同层次之间通过⼀些接⼝通信。
电动加油泵以太⽹: Ethernet 以太⽹⼯作起来就是⼀个总线系统,每台机器通过⼀个分接器挂到⼀个电缆上,每块以太⽹都有⼀个由制造商唯⼀分配的MAC地址。
IP协议位于协议簇的第三层,是协议的传输系统,也是整个协议簇的核⼼。IP协议负责数据报在计算机之间寻址,决定数据传送到哪⾥及⽹络故障时如何更换路由。IP不保证传输的可靠性,在主机资源不⾜的情况下,可能丢弃某些数据报,也不检查被数据链路层丢弃的报⽂。
IP地址:每台主机都要预先分配⼀个唯⼀的32位地址作为该主机的标识符,这个主机必须使⽤该地址进⾏所有通信活动,这个地址叫做IP地址。IP地址有⽹络标识和主机标识组成,可以标识⽹络中任何⼀台主机。132.111.002.001分解成地址就是 ⽹络ID: 132.111主机ID: 002.001. ⼀台计算机可以与多个IP地址但是⼀个IP地址只能分配给⼀台主机。
⼦⽹掩码:通常将⼀个较⼤的⽹络分成多个较⼩的⽹络,每个⼩⽹络使⽤不同的⽹络ID,这样的⼩⽹络称为⼦⽹。
⼦⽹掩码与IP⼀样是32位的值, 将它与主机的IP安位“与”运算可以屏蔽⼀部分IP地址,从⽽确定出这个⽹络地址。⼦⽹掩码可以概括为如下两个功能:区分出⽹络地址和主机地址;⽤于将⽹络分割成多个⼦⽹.
TCP协议是⼀种⾯向连续的可靠地传输层协议。⾯向连续⼗之⼀次正常的TCP传输需要通过在TCP客户端和TCP服务器建⽴特定的虚电路连接来完成,该过程被称为“三次握⼿”。可靠地传输协议可避免数据传输错误。TCP协议可以重新⼤宋传送信息的过程中出现数据丢失的数据包知道发送成功或出现⽹络超时。
UDP也是常⽤的传输层协议,提供⾮⾯向连接、不可靠的数据流传输服务。这种服务不确定报⽂是否到达,不对报⽂排序,也不进⾏流量限制。因此会出现丢失、重复和失序等现象。是⼀种简单的系诶⼀⼰之,通信开销很⼩,效率⽐较⾼。
DNS服务器:数字地址和IP地址可以交替使⽤,在⽹络进⾏连接前,系统必须将域名地址转换成IP地址这就是DNS的任务。⼀个IP可以有多个域名,⼀个域名也可以有多个IP