清华大学操作系统课件_向勇老师的讲义
- 格式:ppt
- 大小:1.41 MB
- 文档页数:97
《操作系统原理导论》课件•操作系统概述•进程管理目录•内存管理•文件系统•设备管理•操作系统安全01操作系统概述存储器管理负责内存的分配、回收、保护和扩充等,提供内存抽象和虚拟内存机制。
处理机管理分配和控制处理机资源,包括进程控制、进程同步、进程通信和死锁处理等。
定义操作系统是一组控制和管理计算机软硬件资源、合理组织计算机工作流程以及方便用户使用的程序的集合。
设备管理提供设备驱动程序接口,实现设备的分配、控制和缓冲等。
文件管理实现文件的创建、删除、读写和保护等操作,提供文件抽象和文件系统接口。
监控程序、批处理系统(单道和多道)等,主要目的是提高资源利用率和作业吞吐量。
早期操作系统允许多个用户同时与计算机交互,每个用户都感觉自己独占了计算机资源。
分时系统对外部输入作出快速响应,广泛应用于工业控制、军事等领域。
实时系统随着计算机网络的发展,出现了网络操作系统和分布式操作系统,实现了资源共享和协同工作。
网络操作系统和分布式操作系统分类根据运行环境和提供服务的方式,操作系统可分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统等。
允许多个程序同时执行,提高资源利用率。
实现资源共享,包括处理器、内存、设备和文件等。
通过技术手段将物理实体变为逻辑上的对应物,提供虚拟处理器、虚拟内存和虚拟设备等。
由于资源有限和程序并发执行,操作系统的运行具有异步性。
并发性虚拟性异步性共享性02进程管理进程的概念与状态进程的定义进程是操作系统中进行资源分配和调度的基本单位,它是程序的执行过程,具有动态性、并发性、独立性和异步性等基本特征。
进程的状态进程在其生命周期内会经历多种状态,如新建态、就绪态、运行态、阻塞态和终止态等。
这些状态之间的转换由操作系统根据进程的执行情况和资源需求进行管理。
进程控制块PCBPCB的定义进程控制块(Process Control Block,PCB)是操作系统中用于描述进程状态和特性的数据结构,它是进程存在的唯一标识。
操作系统课件2-(特殊条款版)操作系统课件2一、引言操作系统是计算机系统中最核心的软件之一,它负责管理和协调计算机硬件与软件资源,为用户提供高效、稳定、安全的运行环境。
本课件将重点介绍操作系统的基本概念、功能、类型以及进程管理等内容。
二、操作系统的基本概念1.操作系统的定义操作系统(OperatingSystem,简称OS)是一种系统软件,它负责管理和协调计算机硬件与软件资源,为用户提供便捷、高效、稳定的运行环境。
2.操作系统的功能操作系统的功能主要包括资源管理、进程管理、内存管理、文件管理、设备管理和用户接口等。
3.操作系统的类型根据操作系统的特点和应用场景,可以分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统等。
三、进程管理1.进程的概念进程是操作系统中执行程序的基本单位,它包括程序代码、数据和进程控制块(PCB)。
2.进程的状态进程的状态分为运行、就绪、阻塞和结束等四种。
3.进程控制进程控制主要包括进程的创建、终止、阻塞、唤醒、切换等操作。
4.进程同步与互斥进程同步是指多个进程之间按照一定的顺序执行,以保证数据的一致性和正确性。
进程互斥是指多个进程在同一时刻只能有一个进程访问共享资源。
5.进程通信进程通信是指多个进程之间交换数据和消息。
进程通信的方式有共享内存、消息传递和管道等。
四、内存管理1.内存分配内存分配是指操作系统为进程分配内存空间的过程。
内存分配的方式有固定分区、可变分区和页式管理等。
2.内存回收内存回收是指操作系统将已分配给进程的内存空间回收的过程。
内存回收的方式有立即回收和延迟回收等。
3.内存扩充内存扩充是指通过虚拟内存技术,将磁盘空间作为内存使用,以扩大内存容量。
4.内存保护内存保护是指操作系统对内存空间进行权限管理,防止进程非法访问其他进程的内存空间。
五、文件管理1.文件的概念文件是存储在辅助存储设备上的数据集合,它具有名称、类型、属性和内容等。
清华⼤学操作系统(陈渝,向勇)课程笔记——(⼗)协同多道程序设计和并发问题主要内容背景—些概念临界区 (Critical section)⽅法1:禁⽤硬件中断⽅法2:基于软件的解决⽅法⽅法3:更⾼级的抽象背景多道程序设计(multi-programming):现代操作系统的重要特性并⾏很有⽤(为什么? )提⽰:多个并发实体:CPU(s),I/O, …,⽤户,…进程/线程:操作系统抽象出来⽤于⽀持多道程序设计CPU调度:实现多道程序设计的机制调度算法-不同的策略独⽴的线程:不和其他线程共享资源或状态确定性=输⼊状态决定结果可重现→能够重现起始条件,I/OI/O调度顺序不重要合作线程:在多个线程中共享状态不确定性不可重现不确定性和不可重现意味着bug可能是间歇性发⽣的进程/线程,计算机/设备需要合作优点1:共享资源—台电脑,多个⽤户⼀个银⾏存款余额,多台ATM机嵌⼊式系统〔机器⼈控制:⼿臂和⼿的协调)优点2:加速I/O操作和计算可以重叠多处理器–将程序分成多个部分并⾏执⾏优点3:模块化将⼤程序分解成⼩程序使系统易于扩展以编译为例,gcc会调⽤cpp,cc1,cc2,as,ld程序可以调⽤函数fork()来创建⼀个新的进程操作系统需要分配⼀个新的并且唯⼀的进程ID因此在内核中,这个系统调⽤会运⾏共享的全局变量翻译成机器指令new_pid = next_pidit ++(不是原⼦操作);1) LOAD next_pid Regl2)STORE Regl new_pid3)INC Regl4STORE Regl next_pid假设两个进程并发执⾏如果next_pid等于100,那么其中⼀个进程得到的ID应该是100,另⼀个进程的ID应该是101,next_pid应该增加到102⽆论多个线程的指令序列怎样交替执⾏,程序都必须正常⼯作多线程程序具有不确定性和不可重现的特点不经过专门设计,调试难度很⾼不确定性要求并⾏程序的正确性先思考清楚问题,把程序的⾏为设计清楚切忌急于着⼿编写代码,碰到问题再调试Race Condition(竞态条件)系统缺陷:结果依赖于并发执⾏或者事件的顺序/时间不确定性不可重现怎样避免竞态?让程序不会被打断Atomic Operation(原⼦操作)原⼦操作是指⼀次不存在任何中断或者失败的执⾏该执⾏成功结束或者根本没有执⾏并且不应该发现任何部分执⾏的状态实际上操作往往不是原⼦的有些看上去是原⼦操作,实际上不是连x++这样的简单语句,实际上是由3条指令构成的有时候甚⾄连单条机器指令都不是原⼦的Pipeline,super-scalar,out-of-order,page fault问题Critical section(临界区)临界区是指进程中的⼀段需要访问共享资源并且当另⼀个进程处于相应代码区域时便不会被执⾏的代码区域Mutual exclusion (互斥)当⼀个进程处于临界区并访问共享资源时,没有其他进程会处于临界区并且访问任何相同的共享资源Dead lock (死锁)两个或以上的进程,在相互等待完成特定任务,⽽最终没法将⾃⾝任务进⾏下去Starvation(饥饿)⼀个可执⾏的进程,被调度器持续忽略,以⾄于虽然处于可执⾏状态却不被执⾏临界区临界区属性互斥:同⼀时间临界区中最多存在⼀个线程Progress:如果⼀个线程想要进⼊临界区,那么它最终会成功有限等待:如果⼀个线程i处于⼊⼝区,那么在i的请求被接受之前,其他线程进⼊临界区的时间是有限制的⽆忙等待(可选)∶如果⼀个进程在等待进⼊临界区,那么在它可以进⼊之前会被挂起临界区代码保护⽅法⽅法1:禁⽤硬件中断没有中断,没有上下⽂切换,因此没有并发硬件将中断处理延迟到中断被启⽤之后⼤多数现代计算机体系结构都提供指令来完成进⼊临界区禁⽤中断离开临界区开启中断缺点⼀旦中断被禁⽤,线程就⽆法被停⽌整个系统都会为你停下来可能导致其他线程处于饥饿状态要是临界区可以任意长怎么办⽆法限制响应中断所需的时间(可能存在硬件影响)所以要⼩⼼使⽤另外,禁⽤软件中断⽆法在多CPU情况下⽆法解决互斥问题⽅法2:基于软件的解决⽅法经典逻辑线程可以共享⼀些共有的变量来同步他们的⾏为。