清华大学操作系统课件_向勇老师的讲义全
- 格式:ppt
- 大小:1.73 MB
- 文档页数:89
操作系统课件2-(特殊条款版)操作系统课件2一、引言操作系统是计算机系统中最核心的软件之一,它负责管理和协调计算机硬件与软件资源,为用户提供高效、稳定、安全的运行环境。
本课件将重点介绍操作系统的基本概念、功能、类型以及进程管理等内容。
二、操作系统的基本概念1.操作系统的定义操作系统(OperatingSystem,简称OS)是一种系统软件,它负责管理和协调计算机硬件与软件资源,为用户提供便捷、高效、稳定的运行环境。
2.操作系统的功能操作系统的功能主要包括资源管理、进程管理、内存管理、文件管理、设备管理和用户接口等。
3.操作系统的类型根据操作系统的特点和应用场景,可以分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统等。
三、进程管理1.进程的概念进程是操作系统中执行程序的基本单位,它包括程序代码、数据和进程控制块(PCB)。
2.进程的状态进程的状态分为运行、就绪、阻塞和结束等四种。
3.进程控制进程控制主要包括进程的创建、终止、阻塞、唤醒、切换等操作。
4.进程同步与互斥进程同步是指多个进程之间按照一定的顺序执行,以保证数据的一致性和正确性。
进程互斥是指多个进程在同一时刻只能有一个进程访问共享资源。
5.进程通信进程通信是指多个进程之间交换数据和消息。
进程通信的方式有共享内存、消息传递和管道等。
四、内存管理1.内存分配内存分配是指操作系统为进程分配内存空间的过程。
内存分配的方式有固定分区、可变分区和页式管理等。
2.内存回收内存回收是指操作系统将已分配给进程的内存空间回收的过程。
内存回收的方式有立即回收和延迟回收等。
3.内存扩充内存扩充是指通过虚拟内存技术,将磁盘空间作为内存使用,以扩大内存容量。
4.内存保护内存保护是指操作系统对内存空间进行权限管理,防止进程非法访问其他进程的内存空间。
五、文件管理1.文件的概念文件是存储在辅助存储设备上的数据集合,它具有名称、类型、属性和内容等。
全套课件《操作系统原理教程(第二版)contents •操作系统概述•进程管理•内存管理•文件管理•设备管理•现代操作系统新技术目录01操作系统概述定义操作系统是一组控制和管理计算机软硬件资源、合理组织计算机工作流程以及方便用户使用的程序的集合。
功能提供用户与计算机硬件系统之间的接口;管理系统资源;提供软件的开发与运行环境。
早期操作系统实时操作系统网络操作系统和分布式操作系统个人计算机操作系统分时操作系统批处理操作系统手工操作方式、脱机输入/输出方式。
单道批处理系统、多道批处理系统。
具有交互性、多用户同时使用一台计算机、用户感觉独占计算机。
实时性、高可靠性。
网络资源共享、分布式处理。
单用户多任务、图形用户界面。
个人计算机操作系统分时操作系统按时间片轮转方式,将CPU 分配给多个终端用户。
网络操作系统控制和协调网络中计算机的运行,提供网络通信、资源管理、网络服务、网络管理、互操作等功能。
分布式操作系统统一管理和调度网络中的资源,实现资源的共享和协同工作,为用户提供透明、一致的使用界面。
自动、顺序、成批地处理作业。
批处理操作系统实时操作系统对随机发生的外部事件做出及时响应并对其进行处理。
提供丰富的应用程序接口和图形用户界面,支持多任务处理和多媒体功能。
02进程管理进程的概念与状态进程的定义进程是操作系统中进行资源分配和调度的基本单位,它是程序的执行过程,具有动态性、并发性、独立性、异步性和结构性等基本特征。
进程的状态进程在其生命周期内会经历多种状态,如创建状态、就绪状态、运行状态、阻塞状态和终止状态等。
这些状态之间会根据特定的条件进行转换。
进程控制块PCBPCB的定义进程控制块PCB是操作系统中用于描述进程状态和特性的数据结构,它是进程存在的唯一标识。
PCB的内容PCB通常包含进程标识符、处理机状态、进程调度信息和进程控制信息等内容。
其中,进程标识符用于唯一标识一个进程;处理机状态记录了进程在执行时的寄存器信息;进程调度信息用于支持操作系统的进程调度功能;进程控制信息则包含了进程的状态、优先级和资源需求等信息。
清华⼤学操作系统(陈渝,向勇)课程笔记——(⼗)协同多道程序设计和并发问题主要内容背景—些概念临界区 (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:基于软件的解决⽅法经典逻辑线程可以共享⼀些共有的变量来同步他们的⾏为。