操作系统原理及应用

  • 操作系统原理及应用
    • 第1章 操作系统概论
    • 第2章 进程管理
    • 第3章 处理及调度与死锁
    • 第 7 章 Linux网络基础

操作系统原理及应用

第1章 操作系统概论

  • 现代计算机系统一般采用多任务并发执行方式,计算机的资源不是有一个程序在运行时单独占用,而是由多个并发运行的程序共享使用。操作系统的目标之一就是同一管理分配计算机系统资源。

处理机管理

  • 处理机的任务是运行程序,程序在某个数据对象上的一次运行过程称为进程,所以处理机管理又称进程管理。

    • 进程控制:进程是程序的一次动态运行过程,其生存期内从产生到消亡经过了一系列的状态转换。操作系统提供了一些原语对进程状态转换进行控制。原语是指在运行过程中不可中断的、完成某一功能的一段程序,作为操作系统的内部功能模块存在。

    • 进程通信:多道程序环境下,可以有系统为一个应用程序建立多个进程,这些进程相互合作,完成某一个任务。他们之间的交换信息称为通信

    • 进程同步:在多道程序中,多个并发进程处在同一运行环境中,必然存在某种联系,如进程之间的资源共享和进程之间的协作。操作系统必须采用一定的策略来处理并发进程之间的约束关系,使各进程能顺利运行,即使各进程同步协调运行。

操作系统

  • 计算机系统采用了冯·洛伊曼的存储程序原理,即把要运行的程序一次性存放在存储器中,然后又处理机自动从存储器中一次取出程序指令运行,处理机的运行过程就是不断地取指令,执行指令循环往复的过程。每次取一条指令,执行一条指令。

  • 操作系统提供了如下的存储管理功能:

    • 内存分配: 为每道程序分配一定的存储空间。制定分配策略是应以提高内存利用率为目标

    • 地址转换: 一个程序经过编译后,形成多个目标程序,这些程序经过连接而形成可装入(执行)程序。在可执行程序中,有一些指令中包含内存地址码,要访问改地址处存放的数据或指令,如内存单元和CPU寄存器之间的数据传送指令中包含数据的内存地址码,转移指令中包含指令的内存地址码。在程序装入内存之前,无法确定程序在内存中的实际存放位置,因此必须建立一个虚拟内存地址空间,将整个程序放在这个虚拟内存地址空间中,每个数据和指令都有一个唯一确定的虚拟内存地址,这个地址称为逻辑地址空间,相对的称实际内存地址空间为物理地址空间。程序和数据必须装入内存才能被CPU访问并执行,程序和数据存入内存之后占据一定的物理内存地址空间,程序的逻辑地址空间往往和物理地址空间不重合,而程序最后是在物理地址空间运行的,即访问程序中的指令和数据时是按照其所在的实际内存地址进行的,所以要正确的访问数据和指令必须要把指令中的逻辑地址转换成物理地址,这一操作称为地址转换,又称重定位

    • 内存扩充: 方法1:进程的整体交换,将一段时间内不运行的进程的代码和数据暂时撤出内存,,需要用的时候再去调入内存。 方法2: 进程的部分载入,给进程分配少量内存,先装入一部分开始运行 ,当访问不在内存中的部分时,再调入内存

    • 内存保护: 确保每道程序都在自己的内存空间运行,互不干扰。不运行用户程序访问操作系统的程序和数据,也不允许访问存取其他程序的存储空间

第2章 进程管理

  • 顺序执行:一个按严格次序、顺序执行的操作序列。把一个具有独立功能的程序独占处理机直到最后结束的过程称为顺序执行。 特征:顺序性,封闭性(封闭环境下运行的),可再现性(最终结果可以再现,只要输入相同,结果一定相同)

  • 并发执行: 指多道程序在同一时间间隔内同时发生,增强计算机系统的处理能力,提高资源的利用率。一组逻辑上相互独立的程序或程序段,在执行过程中时间在客观上相互重叠,即一个程序尚未结束,另一个程序段执行已经开始的一种执行方式。特性:间断性(程序资源相互制约导致的),失去封闭性,不可再现性

  • 进程的定义: 进程是动态的、有生命周期的活动。内核可以创建一个进程,最终将由内核终止该进程时期消亡。

  • 进程的特征: 动态性:进程是进程实体的执行过程;并发性:多个进程实体,共存于内存中,能在一段时间内同时执行;独立性:进程是一个能独立运行的基本单元;异步性:进程按各自独立的、不可预知的速度向前推进。或者说是按异步方式运行;结构特征:进程实体是由程序段、数据段、进程控制块组成,也称这3部分进程映像。

  • 进程的3个基本状态:就绪状态、执行状态、阻塞状态

  • 进程通信:进程间的信息交换称为进程通信

  • 线程:是进程中执行运算的最小单位,即执行处理及调度的基本单元。在引入现成的操作系统中,可以在一个进程内部进行线程切换,现场保护工作量小。一方面通过共享进程的基本资源而减轻系统的开销,另一方面提高了现场切换的效率。因此一个进程内的基本调度单位称为线程或者轻型进程。

  • 线程在进程中派生出来,也可以在派生线程。

  • 调度: 选择一个就绪进程使之进入执行状态。

  • 阻塞:如果一个线程在执行过程中需要等待某个事件发生,则被阻塞,阻塞时,寄存器上下文、程序计数器以及堆栈指针都会得到保证

  • 激活如果阻塞线程所等待的-事件发生则该线程被激活并进入就绪队列

  • 线程的好处: 易于调度,提高了系统的效率,创建线程比进程的开销小,创建速度快,有利于发挥多处理器的功能,提高进程的并行性。

  • 消息传递系统: 消息传递机制都是应用最为广泛的一种进程间通信的机制。在消息传递系统中,进程间的数据交换是以格式化的消息为单位的,在计算机网络中,又把message称为报文。程序员直接利用系统提供的一组通信命令进行通信。操作系统隐藏了实现通信的细节,提高了透明度,因此获得了较为广泛的使用。消息传递系统的通信方式属于高级通信方式,又因实现方式的不同分为直接通信方式和间接通信方式。

第3章 处理及调度与死锁

  • 一个批处理型作业从进入系统并驻留在外存的后备队列上开始,直至作业运作完毕可能要经历以下三级调度,即作业调度、对换和进程调度。

  • 作业调度也叫作高级调度或长调度。作业进入系统之后先驻留在外存上,因此需要有作业调度过程,将其装入内存,并为它创建进程分配必须的资源。然后将创建的进程排在就绪队列上准备执行。

  • 对换:按照给定的原则和策略,将外存上的进程调入内存获奖内存中的进程交换到外存。

  • 进程调度: 低级调度或围观调度,主要任务是按照某种策略和算法,将处理机分配给一个处于就绪状态的进程。

  • 实时进程的调度策略:Linux系统使用两种策略调度:先来先算法和时间片轮法,因为实时进程对时间响应要求较高,因此为了保证实时进程能够优先于普通进程而运行,内核为实时进程增加了第三种优先级,称为实时优先级。

  • 死锁: 在多道程序设计环境中,若干程序往往需要共享计算机系统的资源,若干进程会竞争有限的资源,如果得不到满足就会陷入阻塞状态。也就是如下例:系统中两个进程都因等待对方的临界资源而不能继续运行的现象叫死锁。就跟强强引用无法释放最后内存泄漏一样严重的问题。死锁是指多个进程循环等待其他进程占有的资源,因而无限期僵持下去的局面,也可以说是进程之间无限期互相等待永不发生的事件。显然,如果没有外界的作用,死锁中的各个进程将永远处于阻塞状态。

  • 死锁的原因:①各进程竞争有限的资源:(资源有可剥夺型资源和不可剥夺型资源,内存属于可剥夺性的资源。大多数情况下,死锁都是因为对不可剥夺型资源的竞争导致的)②进程推进顺序不当:如果让竞争者之一先运行资源就不会出现死锁,因此找到一个合适、安全的进程推进顺序以保证系统正常的运行。

  • 死锁的必要条件: ①互斥条件:一个排他性的资源,只能一个进程占有,只有占有该资源的进程放弃该资源后才能供其他资源使用。②占有且申请条件:进程至少占有一个资源了,但现在又在申请新的资源。在等待新资源时,仍不释放已占有的资源。③不可抢占条件:也叫不可剥夺条件:进程所获得的资源在使用完毕之前不能被申请者强制占有。④环路条件: 等待资源的进程形成一个环路, A要B的, B要C的, C要A的。

  • 解决死锁: 预防,避免,检测和解除

  • 死锁的预防与避免:

    • 摒弃占有条件: 在进程运行以前一次性分配所需的全部资源,要么都得到,要么就什么也得不到(缺点:执行前很难知道需要什么资源, 资源利用率第,降低并发性),或者要申请新的资源前,先释放已占有的资源

    • 摒弃不可抢占条件: 隐式抢占。约定已经占有资源的进程申请新的资源而不被满足时必须等待,同时释放已占有的资源,以后再申请。(实现起来较为困难)

    • 摒弃环路条件: 实行资源的有序分配策略,也即把资源编号,按序分配使进程在申请占有时不会形成环路。所有进程对资源的请求必须严格按照资源序号递增的次序提出,保证不存在环路。

  • 死锁的避免: 安全状态:允许进程动态申请资源,系统提供某种方法在分配资源前计算是否会死锁,如果会就进程等待。系统中的所有进程按照某种次序分配资源,并且依次运行。如果存在这样一个安全的序列,则系统是安全的。

  • 死锁的检测一种是在有资源请求的时候进行检测,但是次数过于频繁,另一种是周期性的检测

  • 死锁定理: 如果资源分配图中环路通过简化的方式仍不能取消就一定会产生死锁,如果可以简化的方式取消则不一定会产生死锁。

  • 死锁的解除:1.终止进程; 2.抢占资源

第 7 章 Linux网络基础

TCP/IP协议

  • 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

你可能感兴趣的:(iOS-基础理论)