当前位置: 首页 > news >正文

操作系统-03.进程的定义、组成、组织方式、特征

进程的定义、组成、组织方式、特征

1.进程定义

程序:一个指令序列
系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如代码存放位置)
程序段、数据段、PCB三部分组成了进程实体(进程映像) ,一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的PCB:而撤销进程,实质上是撤销进程实体中的PCB.PCB是进程存在的唯一标志
1.进程的定义?
答:经典定义:1,进程是程序的一次执行过程。2,进程是一个程序及其数据在处理机上顺序执行时所发生的活动,3,进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。定义:进程是进程实体的运行过程,是系统进行系统资源分配和调度的独立单位

PCB组成

进程标识符PID:进程创建时,操作系统会为该进程分配一个唯一的不重复的ID,用于区分不同的进程。
各种寄存器值:程序切换时需要把进程当前运行状态记录下来保存在PCB中,如程序计数器的值表示了当前程序执行到哪一步

PCB
进程描述信息
进程标识符PID
用户标识符UID
进程控制和管理信息
进程当前状态
进程优先级
资源分配清单
程序段指针
数据段指针
键盘
鼠标
处理机相关信息
各种寄存器值
2.进程组成
进程的组成
PCB
进程描述信息
进程控制和管理信息
资源分配清单
处理机相关信息
程序段
存放要执行的代码
数据段
存放程序运行过程中处理的各种数据
3.进程组织方式

在一个系统中,通常有数十、数百乃至数千个PCB.为了能对他们加以有效的管理,应该用适当的方式把这些PCB组织起来。
:进程的组成讨论的是一个进程内部由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题

进程的组织方式
链接方式
索引方式
按照进程状态将PCB分为多个队列
操作系统持有指向各个队列的指针
根据进程状态的不同建立几张索引表
操作系统持有指向各个索引表的指针

链接方式
王道操作系统

索引方式
在这里插入图片描述

4.进程特征
进程的特征
动态性
并发性
独立性
异步性
结构性
进程是程序的一次执行过程-是动态地产生-变化和消亡的
内存中有多个进程实体-各进程可并发执行
进程是能独立运行-独立获得资源-独立接受调度的基本单位
各进程按各自独立的-不可预知的速度向前推进-操作系统要提供-进程同步机制-来解决异步问题
每个进程都会配置一个PCB结构上看进程由程序段-数据段-PCB组成

相关文章:

  • 操作系统-04.进程的状态与切换
  • 操作系统-05.进程控制
  • 操作系统-06.进程通信
  • 操作系统-06.线程概念、多线程模型
  • 操作系统-07.处理机调度概念、层次
  • 设计模式-01.面向对象七大设计原则
  • C++面向对象高级开发-01.C++ 类相关解析
  • C++面向对象高级开发-02.堆、栈与内存管理
  • C++面向对象高级开发-03.指针与引用
  • JAVA-IDEA-Tomcat 完美解决乱码
  • Servlet-jsp 依赖库pox.xml配置
  • C语言——指针之间的传递
  • MySQL学习笔记(一)
  • Django学习笔记(一)——Web应用程序
  • MySql学习笔记(二)——pymysql
  • docker python 配置
  • iOS | NSProxy
  • Linux gpio口使用方法
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • React-flux杂记
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 我的面试准备过程--容器(更新中)
  • 写代码的正确姿势
  • 阿里云ACE认证之理解CDN技术
  • 带你开发类似Pokemon Go的AR游戏
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #前后端分离# 头条发布系统
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (3)选择元素——(17)练习(Exercises)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (四)模仿学习-完成后台管理页面查询
  • (原)Matlab的svmtrain和svmclassify
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .cfg\.dat\.mak(持续补充)
  • .NET Micro Framework初体验(二)
  • .net 后台导出excel ,word
  • .NET程序员迈向卓越的必由之路
  • .ui文件相关
  • @private @protected @public
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [Android]竖直滑动选择器WheelView的实现
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法
  • [bzoj1912]异象石(set)
  • [C#][opencvsharp]opencvsharp sift和surf特征点匹配