操作系统原理_方敏_进程与线程基本知识
操作系统原理基础知识讲解

操作系统原理基础知识讲解操作系统是计算机系统中的一个重要组成部分,它负责管理和控制计算机的各种硬件和软件资源,提供良好的用户界面和应用程序的运行环境。
在本文中,将对操作系统的基本原理进行详细的讲解,包括进程管理、内存管理、文件系统以及输入输出系统等。
一、进程管理进程是计算机中执行的基本单位,它包括程序、数据以及程序执行的上下文。
操作系统通过进程管理来确保计算机系统的高效运行。
1. 进程调度进程调度是操作系统中非常重要的一个功能,它负责根据一定的算法和策略,从就绪队列中选择一个最优的进程分配CPU时间片,以实现多个进程的并发执行。
2. 进程同步与互斥在多道程序环境下,多个进程可能会同时访问共享资源,为了避免数据的错误和不一致,操作系统需要提供进程同步和互斥机制。
常见的同步与互斥方法有信号量、互斥量、临界区等。
3. 进程通信不同的进程之间需要进行数据交换和协作,操作系统提供了多种进程通信的机制,比如管道、消息队列、共享内存等,以便实现进程间的信息传递与共享。
二、内存管理内存管理是操作系统的重要功能之一,它负责将进程所需的空间分配给其执行,同时进行内存的合理利用和回收。
1. 内存分配内存分配可以通过连续分配、非连续分配等方式进行。
常见的内存分配方法有分段、分页、段页式等,以满足不同程序对内存的需求。
2. 虚拟内存虚拟内存是一种通过磁盘上的交换区来扩展主存容量的技术,它允许将部分程序或数据存储在磁盘上,以释放主存空间,并提供更大的地址空间给应用程序。
3. 内存保护与地址转换操作系统通过内存保护机制来防止进程之间的干扰和错误的访问,同时通过地址转换实现虚拟地址与物理地址之间的映射。
三、文件系统文件系统是操作系统中负责管理磁盘存储空间和文件的重要组成部分,它使得用户可以方便地访问和管理文件。
1. 文件组织与管理操作系统通过文件目录结构和文件控制块等数据结构来组织和管理文件,包括文件的创建、删除、读取和写入等操作。
操作系统的基本原理

第二章操作系统的基本原理一、本章需要熟练掌握的内容1、计算机四大系统资源的管理机制:处理器、存储器、外围设备和文件四大资源的管理。
注重对基本概念的理解:2、进程(1)、进程是指一个可并发执行的程序(或程序段)在给定的工作空间和数据集合上的一次执行过程。
它是操作系统进行资源分配和调度的一个独立或基本单位。
(2)、进程是动态的,它由操作系统创建并独立地执行,在执行过程中可能因某个条件不足而被暂时“阻塞”,当条件满足时又被“唤醒”并继续执行,直到任务完成而“撤销”。
因此,进程有生命期,并在不同的状态之间动态地转换。
(3)、进程的并发特征是指一个进程能和其它进程并行执行,但各进程在逻辑上又相对独立,同时各进程的执行速度是不可预知的、异步的。
因此,系统必须为进程提供同步机构,以确保进程能协调操作和共享资源。
(4)、一个进程至少要对应一个或多个程序。
不同的进程可以调用同一个程序,但该程序必须在不同的数据集合上执行。
(5)、程序和进程的关系在于:程序是指令的有序集合,是静态的。
程序的执行过程才是进程。
3、线程:在现代操作系统中,为了进一步提高进程的并发性,引入了线程(Thread)的概念。
简单地说,一个进程可以包含多个线程,此时线程成为处理器调度的基本单位。
4、页式存储:页式存储基本原理是预先把内存物理空间分成大小相等的存储“块”,比如每块为1k 字节,并编上号码,同时把要运行程序的逻辑地址空间分成与“块”大小相同的“页”,也编上号码。
当把程序调入内存时,恰好把程序的某一“页”装入内存某一“块”,而且可以见缝插针地将若干连续的页装入分散的不连续的块中。
由于页和块大小相等,所以除了最后一页可能小于块之外,其余都很合适,这样每一个内存碎片的大小不会超过一“块”的大小。
页式虚拟存储就是把内存和外存作为一个整体连续起来划分成块。
在一个进程运行前,不必将其所有页装入内存,而只需先装入当前要运行的若干页。
在运行过程中。
一旦发现所需要的程序页不在内存时,便请求系统分配存储块,然后将所需页从外存调入,并在页表中登录新调入的页号与对应的块号。
操作系统原理方敏死锁

a
0
b
0
c
0
d
0
银行剩余资金
最大需求 仍需资金
8
8
5
5
6
6
7
7
10
初始状态
客户 已用资金
a
1
b
2
c
1
d
2
银行剩余资金
最大需求 仍需资金
8
7
Hale Waihona Puke 5365
7
5
4
状态1
Q:如何分配才能保证银行资金能够顺利周转?
第18页
五、死锁的避免
客户 已用资金
a
1
b
5
c
1
d
2
银行剩余资金
最大需求 仍需资金
8
7
5
0
6
5
7
5
避免死锁的关键就是:让系统在动态分配资源的过程 中,不要进入不安全状态。
第16页
五、死锁的避免
单银行家算法(Banker’s Algorithm)
1965年由Dijkstra为T.H.E系统设计 基本思想:借用了银行借贷系统的分配策略。基于这样
一些规则:
1、第一次申请需要声明最大资金需求量 2、满足最大需求后要及时归还资金
第3页
二、为什么会产生死锁?
产生死锁的环境
多道程序设计技术
多个并发进程
资源共享(独占) 没有外力可以借助
使用不当造成的死锁示例
P、V操作不当
semaphore s1,s2; s1=0; s2 = 0;
进程T1: while(true){
启动读卡机; 送卡片到缓冲区; P(S2);
操作系统原理第4章 线程

)执行,其执行过程可能与其他进程的执行过程交替进行。因此
,进程具有一个执行状态(运行、就绪等)和一个被分配的优先 级,它是一个可被操作系统调度和分派的实体。
4.1 线程的概念
• 既然上述两个特点是独立的,那么就可以考虑独立地处理 它们,事实上,很多操作系统已经这样做了。为区分这两 个特点,所分派的单位就是线程,而拥有资源所有权的单
用户栈
用户 地址空间
内核栈
内核栈
内核栈
图4-2 单线程和多线程的进程模型
4.1.2 线程的属性
• 从性能比较可以看出,线程的重要优点是:
– 1)在一个已有进程中创建一个新线程比创建一个全新进程所需的 时间要少许多。有研究表明,在UNIX中创建线程要比创建进程快 10倍。 – 2)终止一个线程比终止一个进程花费的时间少。 – 3)同一进程内线程间切换比进程间切换花费的时间少。 – 4)线程提高了不同的执行程序间通信的效率。在大多数操作系统 中,独立进程间的通信需要内核的介入,以提供保护和通信所需 要的机制。但是,由于在同一个进程中的线程共享内存和文件, 它们无须调用内核就可以互相通信。
4.1.2 线程的属性
• 因此,如果一个应用程序或函数被实现为一组相关联的执 行单位,那么用一组线程比用一组分离的进程更有效。 • 使用线程的应用程序的一个例子是文件服务器。当每个新
文件请求到达时,文件管理程序会创建一个新的线程。由
4.1 线程的概念
• 有关进程的概念主要包含两个特点:
– 资源所有权:进程中包括一个存放进程映像的虚拟地址空间,该 进程映像是程序、数据、栈和进程控制块中定义的属性的集合。 进程总是拥有对资源的控制或所有权,这些资源包括内存、I/O通 道、I/O设备和文件等。操作系统提供保护功能,以防止进程之间 发生不必要的与资源相关的冲突。 – 调度/执行:一个进程可以沿着一个或多个程序的执行路径(轨迹
计算机操作系统之进程与线程

计算机操作系统之进程与线程 计算机操作系统之进程与线程进程通信⽅式l 低级⽅式n 信号量n 管程l ⾼级⽅式n 共享存储器系统n 消息传递系统n 管道通信线程通信⽅式l 互斥锁l 条件变量l 计数信号量l 多读,单写锁进程线程的区别进程是系统分配资源的单位,每⼀个进程对应与⼀个活动的程序,当进程激活时,操作系统就将系统的资源包括内存、I/O和CPU等分配给它,使它执⾏。
线程是CPU分配时间的单位,每⼀个线程对应于它在进程中的⼀个函数,也就是内存中的代码段,多个线程执⾏时CPU会根据它们的优先级分配时间,使它们完成⾃⼰的功能。
⼀般来说,进程中⾄少⼀个线程,⼀个主线程和其他线程组成⼀个进程。
多个线程的⽬的在于分享CPU的时间⽚,从⽽完成并⾏任务。
下⾯是⾃⼰整理的:线程和进程的⽐较:线程是⽐进程更⼩的能独⽴运⾏的基本单位,通常⼀个进程都有若⼲个线程,⾄少也需要⼀个线程。
1. 调度:线程是调度和分派的基本单位,进程是资源拥有的基本单位。
2. 并发性:进程之间可以并发执⾏,在⼀个进程中的多个线程之间也可以并发执⾏。
3. 拥有资源:进程是拥有资源的⼀个独⽴单元,线程⾃⼰不拥有系统资源(也有⼀点⽐不可少的资源)但它可以访问其⾪属进程的资源。
4. 系统开销:创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等,OS所付出的开销显著⼤于在创建或撤消线程时的开销;进程切换的开销也远⼤于线程切换的开销。
进程是指在系统中正在运⾏的⼀个应⽤程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独⽴执⾏的⼀个单元。
对于操作系统⽽⾔其调度单元是线程。
⼀个进程⾄少包括⼀个线程,通常将该线程称为主线程。
⼀个进程从主线程的执⾏开始进⽽创建⼀个或多个附加线程,就是所谓基于多线程的多任务。
那进程与线程的区别到底是什么?进程是执⾏程序的实例。
例如,当你运⾏记事本程序(Nodepad)时,你就创建了⼀个⽤来容纳组成Notepad.exe的代码及其所需调⽤动态链接库的进程。
操作系统探秘之进程与线程的原理和调度

进程进程的概念进程的状态进程的控制结构进程的控制进程的上下文切换线程为什么要使用线程?线程与进程的比较线程的上下文切换线程的实现调度调度时机调度原则调度算法进程进程的概念进程就是具有独立功能的程序关于某一数据集合的一次运行活动。
就如我下面的截图,比如WeChat(微信桌面版),这其实就是针对具体功能的运行活动称为进程,但是可以看到进程内还有很多细项在运行,所以也可以称这是一个WeChat的进程树。
进程的状态大家都知道CPU运算是非常快的,但是程序呢不一定都是一泻千里一口气运行到底的,就像我拿个热水壶烧水一样,我已经执行完“接水”==》放热水壶==》插电==》摁开关,但是烧水是需要时间的,我不能在这呆呆的等着,我还可以干点别的,一直到热水壶发出声音提醒我,我去“倒开水”这才完成。
那么我烧水这一连串的动作就可以看作一个进程,那么在这个过程中,就有个“运行”==》“暂停”==》“运行”这样的一种情况。
这种“间断”的特性,也就决定了进程有的三种基本状态:•就绪–进程准备好了除CPU之外的所有资源,就等CPU执行了。
•运行–CPU正在执行当前进程。
•阻塞–进程需要达到某种条件才可以继续执行,在条件满足之前即使得到了CPU资源也无法执行下去。
从头开始到结束呢就还有两个状态•新建–从一无所有创建一个进程,进入就绪状态。
•结束–进程活动完成(正常结束、异常结束)。
另外还有就是常说的挂起状态:进程不再占用内存空间了•就绪挂起–进程在硬盘上,除了CPU之外的资源准备好了,只要加载进内存立马进入就绪状态。
•阻塞挂起–进程在硬盘上,需要满足某种条件,满足条件后被加载进内存进入就绪状态,没有满足条件被加载进内存则进入阻塞状态。
进程的控制结构上面提到进程有这么些状态,那又是怎么控制的呢?在操作系统中,是用进程控制块(process control block,PCB)数据结构来描述进程的。
系统用PCB来记录进程的外部特征,描述进程的运动变化,是感知进程存在的唯一标志。
操作系统课件第二章
VS
共享内存实现方式
在Unix/Linux系统中,可以使用 shmget()、shmat()、shmdt()等系统调 用来实现共享内存的创建、映射和断开操 作。进程可以通过这些系统调用进行共享 内存的通信。同时,为了保证数据的一致 性和安全性,还需要使用信号量等同步机 制来协调多个进程对共享内存的访问。
消息队列实现方式
在Unix/Linux系统中,可以使用msgget()、msgsnd()、msgrcv()等系统调用 来实现消息队列的创建、发送和接收操作。进程可以通过这些系统调用进行消 息队列的通信。
信号量机制及应用
信号量原理
信号量是一种用于控制多个进程对共享资源进行访问的方法。它使用一个整数值来表示资源的数量, 进程在访问共享资源前需要先获取信号量,访问完成后再释放信号量。
线程概念及作用
线程定义
线程是操作系统中进行调度的基 本单位,它是进程中的一个实体 ,是被系统独立调度和分派的基 本单位。
线程作用
提高程序并发执行的程度,提高 系统吞吐量;减少系统开销,提 高系统效率;有利于发挥多处理 机系统的并行性。
线程同步与通信
线程同步
多个线程在并发执行过程中,由于共 享资源或相互合作而产生的制约关系 称为线程同步。常见的线程同步机制 有互斥锁、条件变量、信号量等。
既考虑了等待时间,又考虑了服务时间, 能够平衡长短作业的等待时间。
缺点
算法相对复杂,需要计算响应比。
应用场景
适用于负载适中、需要平衡长短作业等待 时间的系统。
时间片轮转调度算法
定义
优点
缺点
应用场景
将CPU时间划分为固定大小 的时间片,每个进程分配一 个时间片,轮流执行。当时
操作系统中的进程与线程
操作系统的进程与线程为了对操作系统系统的内部结构原理进行进一步的了解和研究,我们全面介绍了操作系统进程与线程的相关知识。
本文一共分为3部分来讲述,分别是进程,线程,进程与线程区别。
其中各章节里面又包含了操作系统进程引入、概念、特征、状态、进程控制块、操作系统进程操作相关API、线程的引入、概念、组成、属性、线程周期及它的周期图、线程特点、创建线程的方法与区别(针对C/C++/MFC)、进程与线程的区别、进程通信的13种机制、线程同步的一系列知识、线程调度算法的总体描述、操作系统线程的优先级、线程调度数据结构、处理机调度的四个层次、三种典型的线程调度算、对优先级的抽象说明、操作系统支持的优先级类、相对的线程优先级、进程优先级类和线程相对优先级的映射、优先级编程、动态提升线程优先级、计算机结构示意图解析、线程的亲缘性示例。
通过这些知识点的整理和讲解,读者可以融会贯通,更好的深入了解操作系统内部进程线程原理。
1.1 windows进程(Process):1.1.1 进程引入多道程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。
这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即我们无法从程序的字面上看出它何时执行,何时停顿,也无法看出它与其它执行程序的关系,因此,程序这个静态概念已不能如实反映程序并发执行过程的特征。
为了深刻描述程序动态执行过程的性质,人们引入“进程(Process)”概念。
1.1.2 进程概念进程通常被定义为一个正在运行的程序的实例,它由两个部分组成:一个是操作系统用来管理进程的内核对象。
内核对象也是系统用来存放关于进程的统计信息的地方。
另一个是地址空间,它包含所有可执行模块或DLL模块的代码和数据。
它还包含动态内存分配的空间。
如线程堆栈和堆分配空间。
操作系统课后答案(参考要点)-方敏版
操作系统概述1.试给出操作系统的定义,并说明现在操作系统的基本特征是什么?操作系统是控制和管理计算机硬件和软件资源、合理地组织和管理计算机的工作流程以方面用户使用的程序的集合。
并发共享虚拟不确定性2.操作系统的主要功能是什么?形成的标志是什么?CPU管理、内存管理、设备管理、作业管理、文件管理形成标志是多道程序技术3.解释下列名词:共享,并发,并行,不确定性见P3.4.什么是多道程序?它的特点是什么?实现多道程序设计要解决那些问题?同时将多个作业放入内存,并允许他们交替执行,共享系统中的各种硬/软件资源,提高CPU,I/O,内存的利用率。
内存管理,为多道程序分配内存空间,并提供内存访问保护CPU的占用调度,兼顾公平性与优先级,考虑计算密集型与I/O密集型,保证吞吐率和资源利用率最大化I/O管理文件管理5.为什么要引进分时系统?分时系统的特点是什么?一台主机上连接了多个键盘显示终端,用户可以通过各自的终端,以交互作用方式使用计算机,共享主机上所配置的各种硬/软件资源;“分时”的定义:指把计算机的系统资源(尤其是CPU时间)进行时间上的分割,每个时间段称为一个时间片,每个用户依次轮流使用时间片。
同时化独立性及时性交互性作业管理和用户接口1.通常操作系统和用户之间有哪几类接口?它们的主要功能是什么?作业控制级接口:提供对作业的控制功能。
最初是命令驱动方式,现在多采用图形及视窗操作环境。
程序级接口:系统调用是操作系统提供给软件开发人员的接口。
2.什么是系统调用?并说明它的实现原理。
指用户在程序设计过程中调用操作系统提供的一些子功能,是用户在程序级请求操作系统服务的一种手段,是操作系统提供给编程人员的唯一接口。
3.比较一般的过程调用和系统调用的区别运行状态不同。
系统功能调用的调用过程和被调用过程运行在不同的状态,而普通的过程调用运行在相同的状态。
调用方法不同。
系统调用必须通过中断机制首先进入系统核心,然后才能转向相应的命令处理程序。
操作系统课后问题详解参考要点-方敏版
操作系统概述1.试给出操作系统的定义,并说明现在操作系统的基本特征是什么?操作系统是控制和管理计算机硬件和软件资源、合理地组织和管理计算机的工作流程以方面用户使用的程序的集合。
并发共享虚拟不确定性2.操作系统的主要功能是什么?形成的标志是什么?CPU管理、内存管理、设备管理、作业管理、文件管理形成标志是多道程序技术3.解释下列名词:共享,并发,并行,不确定性见P3.4.什么是多道程序?它的特点是什么?实现多道程序设计要解决那些问题?同时将多个作业放入内存,并允许他们交替执行,共享系统中的各种硬/软件资源,提高CPU,I/O,内存的利用率。
内存管理,为多道程序分配内存空间,并提供内存访问保护CPU的占用调度,兼顾公平性与优先级,考虑计算密集型与I/O密集型,保证吞吐率和资源利用率最大化I/O管理文件管理5.为什么要引进分时系统?分时系统的特点是什么?一台主机上连接了多个键盘显示终端,用户可以通过各自的终端,以交互作用方式使用计算机,共享主机上所配置的各种硬/软件资源;“分时”的定义:指把计算机的系统资源(尤其是CPU时间)进行时间上的分割,每个时间段称为一个时间片,每个用户依次轮流使用时间片。
同时化独立性及时性交互性作业管理和用户接口1.通常操作系统和用户之间有哪几类接口?它们的主要功能是什么?作业控制级接口:提供对作业的控制功能。
最初是命令驱动方式,现在多采用图形及视窗操作环境。
程序级接口:系统调用是操作系统提供给软件开发人员的接口。
2.什么是系统调用?并说明它的实现原理。
指用户在程序设计过程中调用操作系统提供的一些子功能,是用户在程序级请求操作系统服务的一种手段,是操作系统提供给编程人员的唯一接口。
3.比较一般的过程调用和系统调用的区别运行状态不同。
系统功能调用的调用过程和被调用过程运行在不同的状态,而普通的过程调用运行在相同的状态。
调用方法不同。
系统调用必须通过中断机制首先进入系统核心,然后才能转向相应的命令处理程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《操作系统实验课程》
进程和线程基本知识
操作系统课程组
内容安排
进程的基本概念 进程调度 进程间的相互作用 线程的基本概念
Xidian University
OS Experiments
-2-
进程的基本概念
定义
进程是程序的一次执行,该进程可与其它进程并发执行; 进程是程序的一次执行,该进程可与其它进程并发执行;它是一个动 态的实体,在传统的操作系统设计中,进程既是资源的基本分配单元, 态的实体,在传统的操作系统设计中,进程既是资源的基本分配单元, 也是基本的执行单元。 也是基本的执行单元。
Xidian University
OS Experiments
-7-
进程调度
定义
就是按照一定的算法,从就绪队列中选择某个进程占用 就是按照一定的算法,从就绪队列中选择某个进程占用CPU的方 的方 法——对CPU资源进行合理的分配使用,以提高处理机利用率,并 对 资源进行合理的分配使用,以提高处理机利用率, 资源进行合理的分配使用 使各进程公平得到处理机资源。 使各进程公平得到处理机资源。
Xidian University
OS Experiments
-12-
进程间的相互作用
互斥解决方案
关中断法(开关中断指令 关中断法 开关中断指令) 开关中断指令
也称为“硬件锁” 是实现互斥最简单的方法。 也称为“硬件锁”,是实现互斥最简单的方法。 做法:每个进程在进入临界区后先关中断,屏蔽其它请求, 做法:每个进程在进入临界区后先关中断,屏蔽其它请求,在离开之前 再开中断。 再开中断。
Xidian University
OS Experiments
-3-
进程的基本概念
进程的组成
• Process Control Block 灵魂,进程存在的唯一标志。 灵魂,进程存在的唯一标志。 • 程序:描述了进程要完成的功能,是 程序:描述了进程要完成的功能, 进程执行时不可修改的部分。 进程执行时不可修改的部分。 • 数据:进程执行时用到的数据(用 数据:进程执行时用到的数据( 户输入的数据、常量、静态变量)。 户输入的数据、常量、静态变量)。
-13-
进程间的相互作用
信号量(Semaphore)和P、V操作 和 、 操作 信号量
信号量: 年由荷兰学者Dijkstra提出,它是一种特殊的数据结构。 提出, 信号量:1965年由荷兰学者 年由荷兰学者 提出 它是一种特殊的数据结构。
功能:表示资源的实体。 功能:表示资源的实体。 特殊之处: 特殊之处: 每个信号量与一个队列关联; ① 每个信号量与一个队列关联; 其值只能通过初始化和P、 操作来访问 操作来访问。 ② 其值只能通过初始化和 、V操作来访问。
Xidian University OS Experiments
{ … P(S); print file2; V(S); … }
-17-
进程调度算法
先来先服务调度算法 (FCFS, First Come First Served)
PCB
就绪队列 PCB PCB
PCB
CPU
Xidian University
OS Experiments
-8-
进程调度
基于优先数的调度算法(Priority Scheduling Algorithm) 基于优先数的调度算法
信号量的类型: 信号量的类型:
公用信号量:用于进程间的互斥,初值通常为 公用信号量:用于进程间的互斥,初值通常为1 私有信号量:用于进程间的同步,初值通常为0或n 私有信号量:用于进程间的同步,初值通常为 或
Xidian University
OS Experiments
-14-
进程间的相互作用
P、V操作 (均是原语 、 操作 均是原语 均是原语) P操作:荷兰语“proberen”——“检测”之意。 操作:荷兰语“ 检测” 操作 检测 之意。 意味着请求分配一个单位资源。 意味着请求分配一个单位资源。 P(S): //S为信号量 : 为信号量 { S = S - 1; if (S < 0) { 调用进程被阻塞, 调用进程被阻塞, 进入S的等待队列 的等待队列; 进入 的等待队列; } }
其它方法
Dekker算法:进程被强制轮流进入临界区(不管是否愿意 。 算法:进程被强制轮流进入临界区 不管是否愿意)。 算法 不管是否愿意 Peterson算法:设置标识指示是否又要求进入临界区。 算法: 算法 设置标识指示是否又要求进入临界区。 ……
Xidian University
OS Experiments
降低进程优先级 执 行 时 间 递 增 最高优先级队列 PCB PCB PCB 次高优先级队列 PCB PCB PCB 低优先级队列 PCB PCB
PCB
CPU 完成
PCB
PCB
PCB
Xidian University
OS Experiments
-11-
进程间的相互作用
同步
进程之间相互合作、协同工作的关系称为进程的同步。简单说来就是: 进程之间相互合作、协同工作的关系称为进程的同步。简单说来就是: 多个相关进程在执行次序上的协调。进程间的直接制约。 多个相关进程在执行次序上的协调。进程间的直接制约。
PCB 实体 程序 数据
工作区
• 工作区:参数传递、系统调用时使 工作区:参数传递、 用的动态区域(堆栈区)。 用的动态区域(堆栈区)。
Xidian University
OS Experiments
-4-
进程的基本概念
进程/线程的执行 进程 线程的执行
进程占有处理机, 进程占有处理机,处理机正在执行该进 程的程序。 程的程序。
Xidian University
OS Experiments
-9-
进程调度
时间片轮转法 (RR, Round Robin)
特点:专门为分时系统设计。类似于FCFS算法但是增加了抢占及进程间 特点:专门为分时系统设计。类似于 算法但是增加了抢占及进程间 的切换功能。 的切换功能。 思想:系统规定一个时间长度(时间片 时间量)作为允许一个进程运行的 时间片/时间量 思想:系统规定一个时间长度 时间片 时间量 作为允许一个进程运行的 时间,如果在这段时间该进程没有执行完,则必须让出CPU等待下一次 时间,如果在这段时间该进程没有执行完,则必须让出 等待下一次 分配的时间片。 分配的时间片。
锁变量法(测试和设置指令 锁变量法 测试和设置指令) 测试和设置指令
做法:设置一个共享 锁 变量 变量W,初值为0。 做法:设置一个共享(锁)变量 ,初值为 。当一个进程想进入其临界区 它首先测试这把锁。如果锁的值为0,则进程将其置为1并进入临界 时,它首先测试这把锁。如果锁的值为 ,则进程将其置为 并进入临界 若锁已经为1,则进程等待直到其变成0。于是, 就表示临界区内没 区。若锁已经为 ,则进程等待直到其变成 。于是,0就表示临界区内没 有进程, 表示已经有某个进程进入了临界区 表示已经有某个进程进入了临界区。 有进程,1表示已经有某个进程进入了临界区。
PCB PCB PCB PCB PCB
Xidian University
OS Experiments
-16-
进程间的相互作用
信号量及P、 操作的应用 信号量及 、V操作的应用
进程的互斥 semaphore S; //设置公有信号量 设置公有信号量 S = 1; //初值 初值
{ … P(S); print file1; V(S); … }
就绪队列
PCB
PCB
PCB
PCB 执行
CPU
时间片用完
Xidian University
OS Experiments
-10-
进程调度
多级反馈队列调度算法(Multilevel Feedback Queue Scheduling) 多级反馈队列调度算法
思想:引入多个就绪队列,通过对各队列的区别对待, 思想:引入多个就绪队列,通过对各队列的区别对待,达到一个综合的 调度目标。 调度目标。
运行 Running 被调度 时间片用 完,中断 就绪 Ready
进程已获得除处理机外 的所需资源, 的所需资源,等待分配 处理机执行。 处理机执行。
等待资源 和事件 阻塞 Blocked
资源释放或 事件完成
也叫等待、挂起、睡眠态, 也叫等待、挂起、睡眠态,此时进 程因等待某种条件( 程因等待某种条件(如I/O操作或进 操作或进 程同步)无法运行。 程同步)无法运行。引起进程阻塞 的原因很多, 的原因很多,系统将根据不同的阻 塞原因将进程插入某个相应的阻塞 队列中。 队列中。
进程与程序的区别和联系
程序是静态的,进程是动态的。程序是有序代码的集合; 程序是静态的,进程是动态的。程序是有序代码的集合;进程是程序 的一次执行。 的一次执行。 进程是暂时的,程序的永久的。进程是一个变化的过程,有生命周期, 进程是暂时的,程序的永久的。进程是一个变化的过程,有生命周期, 暂时存在,程序没有生命周期,可长久保存。 暂时存在,程序没有生命周期,可长久保存。 进程还是操作系统资源分配和保护的基本单位,程序没有此功能。 进程还是操作系统资源分配和保护的基本单位,程序没有此功能。 进程与程序的对应关系。通过多次执行,一个程序可对应多个进程; 进程与程序的对应关系。通过多次执行,一个程序可对应多个进程; 通过调用关系,一个进程可包括多个程序。 通过调用关系,一个进程可包括多个程序。 进程与程序的结构不同。 进程与程序的结构不同。