目录

什么是进程?

进程控制块抽象(PCB)

虚拟地址空间

什么是进程?

进程是操作系统对一个正在运行的程序的一种抽象,进程可以看作是程序的一次运行过程;同时,在操作系统内部,进程是操作系统进行资源分配的基本单位

创建一个进程,本质上就是创建PCB,并且加入到链表中;销毁一个进程,本质上就是从链表上删除对应的PCB节点;查看任务管理器的进程列表,本质上就是在遍历这个列表。

进程控制块抽象(PCB)

一个进程可能是一个PCB,也有可能对应多个

PCB包含以下信息:

1、pid进程的身份标识

一个主机,同一时刻,这些进程的pid是唯一的,通过pid来区分一个进程

2、内存指针

描述进程持有的内存资源

3、文件描述符表

记录了当前进程打开了那些文件,描述进程持有的文件资源

4、进程状态

就绪状态、阻塞状态

5、进程优先级

系统调度的时候,会根据优先级,来给进程安排时间

6、进程上下文

对于进程来说,上下文就是CPU中的寄存器的值(寄存器的值就包含了运行的中间结果,需要把这些结果保存在PCB的上下文信息中(内存))

7、进程记账信息

每个进程在CPU上执行了多久,统计信息

虚拟地址空间

为了解决进程之间相互影响这个问题,就需要让每个进程都有自己的内存空间(活动范围),所以给每个进程划分内存空间。

使用虚拟地址空间,就认为进程之间存在了“隔离性”,会使一个进程是不能访问另一个进程的内存数据的

隔离性虽然解决了进程之间相互影响这个问题,但是又带来了新的问题,进程之间很难交互。由此,系统引入了一个机制,进程间通信:找一个多个进程都能访问到的公共资源,然后基于公共资源来交换数据

操作系统中的进程管理相关推荐

  1. 操作系统中的进程与线程

    简介 在传统的操作系统中,进程拥有独立的内存地址空间和一个用于控制的线程.但是,现在的情况更多的情况下要求在同一地址空间下拥有多个线程并发执行.因此线程被引入操作系统. 为什么需要线程? 如果非要说是 ...

  2. Android系统中的进程管理:内存的回收

    本文是Android系统进程管理的第三篇文章.进程管理的前面两篇文章,请参见这里: Android系统中的进程管理:进程的创建 Android系统中的进程管理:进程的优先级 本文适合Android平台 ...

  3. Android系统中的进程管理:进程的创建

    对于操作系统来说,进程管理是其最重要的职责之一. 考虑到这部分的内容较多,因此会拆分成几篇文章来讲解. 本文是进程管理系统文章的第一篇,会讲解Android系统中的进程创建. 本文适合Android平 ...

  4. 操作系统中的进程与线程和java中的线程

    简介 在传统的操作系统中,进程拥有独立的内存地址空间和一个用于控制的线程.但是,现在的情况更多的情况下要求在同一地址空间下拥有多个线程并发执行.因此线程被引入操作系统. 为什么需要线程? 如果非要说是 ...

  5. (王道408考研操作系统)第二章进程管理-第三节8:经典同步问题之吸烟者问题

    本文接: (王道408考研操作系统)第二章进程管理-第三节6:经典同步问题之生产者与消费者问题 ((王道408考研操作系统)第二章进程管理-第三节7:经典同步问题之多生产者与多消费者问题 文章目录 一 ...

  6. 操作系统中的进程控制块又起什么作用呢?

    为了便于系统控制和描述进程的活动过程,在操作系统核心中定义了一个专门的数据结构,称为进程控制块( Process Control block,PCB). 操作系统利用PCB来描述进程的基本情况以及进程 ...

  7. 笔记篇:操作系统第二章 进程管理

    笔记篇:操作系统第二章 进程管理 目录 笔记篇:操作系统第二章 进程管理 2.1 进程的基本概念 2.1.1 程序的顺序执行及其特征 2.1.2 前驱图 2.1.3 程序的并发执行及其特征 2.1.4 ...

  8. 专业介绍Linux中的进程管理

    Linux中的进程管理 1.什么是进程? 1)进程就是系统中处于执行期的工作. 对于[执行]两个字需要作出特别解释:执行并不同于运行,因为系统中的进程的状态大概分为四种: 进程状态 R(Running ...

  9. 【转】聊聊Linux操作系统中的显示管理器及如何更换

    转自:聊聊Linux操作系统中的显示管理器及如何更换 - linux-123 - 博客园 聊聊Linux操作系统中的显示管理器及如何更换 | <Linux就该这么学> 什么是 Linux ...

最新文章

  1. 安卓重要组件#1--ListView创建及基本的使用方法
  2. 有史以来的第一个脚本 找出三个数的最大数字
  3. OpenCV角点检测之Harris角点检测
  4. LVS nat 负载均衡实验
  5. pythonwhile循环怎么修改数据类型_python基础--数据类型循环
  6. 那些VisualStudio隐藏的调试功能
  7. Linux内核启动去掉企鹅,修改linux内核kernel开机logo(小企鹅)
  8. Java学习之JDK的安装与配置
  9. 生成式模型(generative) vs 判别式模型(discriminative)
  10. 花4个月时间整理出《Spring揭秘》的文字版的感受
  11. ESD-PCIe 402-1 CAN卡驱动安装及测试
  12. rxbus 源码_从 RxBus 这辆兰博基尼深入进去
  13. linux查看服务器cpu主频,linux 下查看服务器CPU的信息
  14. 10块钱闯荡深圳,如今身价935亿,超越李彦宏,他竟如此低调……
  15. [C++]cpp小笔记3 --- C++ String and char
  16. echarts配置项图文介绍——xAxis
  17. 【已解决】体视显微镜左右成像大小不一致
  18. 数组、链表、哈希、队列、栈数据结构特点,各自优点和缺点
  19. ubuntu 20.04安装cuda
  20. Groovy~Groovy的Map操作

热门文章

  1. 【Kevin Learn 小程序】-->picker-view
  2. WIMAX运营与业务定位
  3. Android 触摸屏交互之手势监听
  4. Ignition OPC UA
  5. 联想微型计算机c200电脑烂了,联想C200一体电脑基本配置
  6. [连接 HarmpnyOS ]-使用 ADB+USB 进入华为鸿蒙系统
  7. nodejs使用forever执行
  8. 音视频开发之旅(四)Camera视频采集
  9. MySQL授权修改表结构_MySQL创建修改表结构
  10. 【计算机网络相关的面试题】计算机网络基础总结