您好、欢迎来到现金彩票网!
当前位置:516棋牌游戏 > 先来先服务 >

计算机操作系统(二)—— 进程管理

发布时间:2019-08-14 04:58 来源:未知 编辑:admin

  (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。

  例如:QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。

  线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。

  原因:创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。

  在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小

  (1)由进程申请一个空白的进程控制块(PCB),向PCB中填写控制和管理进程的信;

  进程已经准备好运行的状态;进程已分配到除CPU以外所有的必要资源后,只要再获得CPU,便可立即执行;

  单处理机的系统中,只有一个进程处于执行状态,在多处理机系统中,有多个进程处于执行状态。

  正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态(阻塞状态);

  此时引起进程调度,操作系统把处理机分配给另外一个就绪的进程,而让受阻的进程处于暂停的状态(阻塞态);

  就绪状态的进程,进程调度程序为之分配了处理机后,进程便由就绪状态转变成**执行状态。

  执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机(PCB),于是进程从执行状态转变成就绪状态。

  正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。

  处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态

  运行状态的进程,在分配给它的CPU 时间片用完之后就会转为就绪状态,等待下一次调度。

  (2)阻塞状态是缺少需要的资源从而由运行状态转换而来,但是该资源不包括 CPU 时间,缺少 CPU 时间会从运行态转换为就绪态。

  所有就绪进程按先来先服务原则排队,第一个排队的先执行一个时间片的时间,时间到了后,这个同学就排到队伍最后面去,让第二个人开始也执行一个时间片,时间到了就排到队列末尾去,这样依次执行下去。(类似轮流和CPU玩,每人5分钟这样子)

  信号量(Semaphore)是一个整型变量,可以对其执行 down 和 up 操作,也就是常见的 P 和 V 操作。

  概念:是一个资源管理模块,其中包含了共享资源的数据结构,以及由对该共享数据结构实施操作的一组过程(方法)所组成的资源管理程序。

  使用信号量机制实现的生产者消费者问题需要客户端代码做很多控制,而管程把控制的代码独立出来,不仅不容易出错,也使得客户端代码调用更容易。

  问题描述:使用一个缓冲区来保存物品,只有缓冲区没有满,生产者才可以放入物品;

  解析:因为缓冲区属于临界资源,因此需要使用一个互斥量 mutex 来控制对缓冲区的互斥访问。

  为了同步生产者和消费者的行为,需要记录缓冲区中物品的数量。数量可以使用信号量来进行统计,这里需要使用两个信号量:empty 记录空缓冲区的数量,full 记录满缓冲区的数量。其中,empty 信号量是在生产者进程中使用,当 empty 不为 0 时,生产者才可以放入物品;full 信号量是在消费者进程中使用,当 full 信号量不为 0 时,消费者才可以取走物品。

  注意,不能先对缓冲区进行加锁,再测试信号量。也就是说,不能先执行 down(mutex) 再执行 down(empty)。如果这么做了,那么可能会出现这种情况:生产者对缓冲区加锁后,执行 down(empty) 操作,发现 empty = 0,此时生产者睡眠。消费者不能进入临界区,因为生产者对缓冲区加锁了,消费者就无法执行 up(empty) 操作,empty 永远都为 0,导致生产者永远等待下,不会释放锁,消费者因此也会永远等待下去。

  允许多个进程同时对数据进行读操作,但是不允许读和写以及写和写操作同时发生。

  一个整型变量 count 记录在对数据进行读操作的进程数量,一个互斥量 count_mutex 用于对 count 加锁,一个互斥量 data_mutex 用于对读写的数据加锁。

  问题描述:五个哲学家围着一张圆桌,每个哲学家面前放着食物。哲学家的生活有两种交替活动:吃饭以及思考。当一个哲学家吃饭时,需要先拿起自己左右两边的两根筷子,并且一次只能拿起一根筷子。

  错误解法:如果所有哲学家同时拿起左手边的筷子,那么就无法拿起右手边的筷子,造成死锁。

  进程通信是为了达到进程同步目的的一种手段。为了让进程同步,进程间必须通信,传输一些进程同步所需要的信息。

  概念:本质上是一个管道文件,可以通过命令创建也可以通过函数创建,用户可以看到;

  FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户进程和服务器进程之间传递数据。

  允许多个进程共享一个给定的存储区。因为数据不需要在进程之间复制,所以这是最快的一种 IPC。

  多个进程可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存不是使用文件,而是使用内存的匿名段。

  本篇博客为个人学习笔记,大部分内容来自该博主cyc2018,另有部分来自其他一些博客文章,在此表示感谢!

  进程管理一.实验目的1、理解进程的概念,明确进程和程序的区别。2、理解并发执行的实质。3、掌握进程的创建、睡眠、撤销等进程控制方法。二.实验内容与基本要求用C语言编写程序,模拟实现创建新的进程;查看运...博文来自:cyangs blog

  注:本文记录WHUT-计算机学院-操作系统课程实验2:进程管理纸上得来终觉浅,觉知此事需躬行! 1、实验内容:实验预备:掌握进程管理的相关内容,对进程的同步和互斥,及信号量机制有深入的理解实验内容...博文来自:拾年之璐

  实验二:进程控制李许增16281042操作系统archLinux1、打开一个vi进程。通过ps命令以及选择合适的参数,只显示名字为vi的进程。寻找vi进程的父进程,直到init进程为止。记录过程中所有...博文来自:lixuzeng的博客

  Java 操作系统课设之模拟进程管理系统。 使用Java实现的操作系统课设之模拟进程管理系统,是博主的一个课设,emmm 进程管理系统 操作系统课设 Java

  操作系统课程设计 进程管理操作系统课程设计 进程管理操作系统课程设计 进程管理操作系统课程设计 进程管理操作系统课程设计 进程管理操作系统课程设计 进程管理

  前一篇文章贴出的是基本的实验思路以及要求,接下来我们用代码具体实现整个进程管理过程。由于本人比较喜欢用java开发,并且java写起来比c快多了,于是就写了一个java版的。思想都是一样的,语言不重要...博文来自:springcoder的博客

  实验二 进程管理一、目的本课题实验的目的是,加深对进程概念及进程管理各个部分内容的理解;熟悉进程管理中主要数据结构的设计及进程调度算法,进程控制机构,同步机构,通信机构的实施。二、题目进程管理三、要求...博文来自:张毅轩的博客

  实验二:进程的控制1.实验目的通过进程的创建、撤消和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。【答:进程概念和程序概念最大的不同之处在于:(1)进程是动态的,而程序是静态的。(...博文来自:Antelope的博客

  实验二 Linux基本命令:进程管理一:实验目的: 通过实验熟悉Linux操作系统环境,掌握与进程相关命令的使用方法。实验要求1. 掌握Linux系统中进程的组织结构2. 掌握会话、进程、进程组和...博文来自:cdsjddn的博客

  使用Java实现的操作系统课设之模拟进程管理系统,是博主的一个课设,emmm,花了半天设计界面,半天写代码,emm,下载链接:博文来自:挽风低吟

  大作业—进程控制模块的模拟和实现(java版本),写的很简单,谨慎下载

  最近要写计算机操作系统大作业,老师要求用代码实现进程控制模块的模拟,在网上看了许多资源,发现都不是很符合我的需求,于是自己动手写了一个。但由于时间仓促,而且自己也懒得写那么多,所以项目仅仅实现了进程创建、简单的资源分配、进程阻塞(这个功能...

  设计和实现进程与资源管理,并完成Test shell的编写,以建立系统的进程管理、调度、资源管理和分配的知识体系,从而加深对操作系统进程调度和资源管理功能的宏观理解和微观实现技术的掌握

  学堂在线-清华操作系统课程-实验二实验报告博文来自:jasonyuchen的博客

  问题描述:多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。调度算法:...博文来自:鱼香的博客

  进程通信定义:进程通信就是指进程之间的信息交换进程是分配系统资源的单位,包括内存地址空间。因此各进程拥有的内存地址空间相互独立,所谓相互独立表示进程只能直接访问属于自己这个进程的地址空间,但是不能直接...博文来自:ZerinHwang

  一、冯诺依曼体系结构目前我们认识的计算机都是由一个个硬件组成输入单元:键盘,鼠标,扫描仪等 输出单元:显示器,打印机 中央处理器(cpu):含有运算器和控制器关于冯诺依曼体系,必须强调几点:存储器是指...博文来自:audience_fzn的博客

  编写一个多进程并发执行程序。父进程首先创建一个执行ls命令的子进程然后再创建一个执行ps命令的子进程,并控制ps命令总在ls命令之前执行。#includelt;sys/types.h&...博文来自:kid_hui的博客

  进程控制--操作系统信号量机制实现当多个进程访问临界区,最常用的进程控制方法是通过操作系统来完成信号量机制:两个或多个进程通过简单的信号机制配合工作。进程被迫在某个点停止运行,只有在接到一个具体信号后...博文来自:remember_rng的博客

  用到的函数主要有fork和vfork,fork创建的子进程是对父进程的简单拷贝,它的对资源的修改不会影响父进程;vfrok创建的子进程是父进程的资源共享,此时父进程被阻塞,执行完子进程再执行父进程,子...博文来自:问天的博客

  计算机基础知识的学习中,操作系统则是重中之重。继对微机原理和计算机组成原理的基础知识了解和学习后,对硬件和基础原理的理论有了初步的了解,结合在所在公司的项目中开发应用的经历和体会,进行了操作系...博文来自:DKE_LS的博客

  Java模拟操作系统(内存管理,进程管理,文件管理,进程通信)实现了操作系统的基本功能。付源代码和详细设计

  用C语言链表实现进程转换,阻塞变就绪,就绪变执行,执行变阻塞三种状态的转换

  (1)进程的软中断通信 #include stdio.h #include signal.h #include unistd.h #include s...

  模拟操作系统的进程调度,作业管理,设备分配,存储管理,来实现判别一系列作业请求队列的响应顺序的要求

  通过对进程间通信同步/互斥问题的编程实现,加深理解信号量和 P、V 操作的原理; 对 Windows 或 Linux 涉及的几种互斥、同步机制有更进一步的了解;熟悉 Windows 或 Linux 中定义的与互斥、同步有关的函数。

  前言操作系统里面有两个非常重要的图像,一个是多进程图像,另外一个就是文件管理图像。这一篇博客来和大家探讨一下什么是多进程图像,以及操作系统是如何支持多进程图像的。多进程操作系统的由来多进程图像对操作系...博文来自:williamgavin的博客

  电子科技大学—操作系统课程实验(一)系统化思维模式下计算机操作系统进程与资源管理设计1.实验目的:设计和实现进程与资源管理,并完成Testshell的编写,以建立系统的进程管理、调度、资源管理和分配...博文来自:springcoder的博客

  (一)实验目的 进程是操作系统中最基本、最重要的概念,进程调度又是操作系统的核心模块。本实验要求学生独立地用C或C++语言编写一个简单的进程管理程序,其主要部分是进程调度。调度算法可由学生自行选择,如...博文来自:的博客

  1.目的和要求通过实验理解进程的概念,进程的组成(PCB结构),进程的并发执行和操作系统进行进程管理的相关原语(主要是进程的创建、执行、撤消)。2.实验内容用C/C++语言编程模拟进程管理,至少要有:...博文来自:欢迎来到GEEK卷轶浩繁的博客

  实验一进程控制一、      实验目的1.       理解进程控制块的结构。 2.       理解进程各种状态之间的转换过程。3.       掌握进程创建与撤消的方法。4.       掌握进程...博文来自:GoodLuckAC的博客

  一、概述1、为什么引入进程程序并发执行时具有如下特征:间断性程序在并发执行时,由于它们共享资源或为完成同一项任务而相互合作,使在并发程序之间形成了相互制约的关系。相互制约将导致并发程序具有“执行-暂停...博文来自:想作会飞的鱼的博客

  实验任务设计一个程序,根据不同的调度算法模拟操作系统对进程的调度。调度算法:时间片循环法1、设计进程控制块PBC表结构,适用循环时间片轮转算法。2、PBC结构通常包括以下信息:进程名、进程优先数、轮转...博文来自:永不止步的博客

http://iamtheguru.net/xianlaixianfuwu/535.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有