当前位置:网站首页 > 编程语言 > 正文

进程控制块是进程存在的唯一标志(进程控制块是进程存在的唯一标志对吗)



  1. 内核
    应用连接硬件设备桥梁,不用考虑和应用和硬件设备的交互,只需要考虑应用和内核的交互
  2. 内核有哪些功能
    管理进程线程,内存,硬件设备,为进程和硬件设备之间提供通信能力,提供系统待用
    系统调用过程

虚拟内存

  1. 操作系统如何实现在内存中同时运行两个地址?
    把每个进程所使用的地址隔离开来,让每个操作系统为每个进程分配独立一套虚拟地址。同时提供一套机制,将不同进程的虚拟地址和不同内存的物理地址映射起来。
  2. 如何管理虚拟地址和物理地址之间关系
    内存分段
    分段机制下虚拟地址-物理地址映射
  3. 内存分段可能出现内存碎片和内存交换效率低下的问题
    内存分页解决
    在这里插入图片描述
  4. 什么是分页
    分页是把整个虚拟和物理内存空间切成一段段固定尺寸的大小。页与页之间是紧密排列的,所以不会有外部碎片。
    页表负责虚拟地址转换成物理地址
  5. 分页可能会出现问题?
    内存分页机制最小单位是一页,程序不足一页,最小智能分配一夜,所以以内会出现内存浪费。
    解决:内存空间不够用,操作系统会把正在运行进程中最近没被使用内存页面释放掉。页与页之间是紧密排列的,所以不会有外部碎片。
  6. 分页机制下,虚拟地址和物理地址是如何映射的?
    页号和页内偏移
    虚拟内存分为页号和页内偏移
    拿到页号在页表里查询对应的物理页号
    物理页号和前面偏移量,得到了物理内存地址
  7. 分页机制的缺陷
    操作系统有多个进程意味着页表会非常庞大。
  1. 什么是进程
    编写代码存储在硬盘中,通过编译生成二进制可执行文件对于java来说是。class文件,运行这个二进制文件后被装载到内存中,接着cpu会执行程序中每一条指令,运行中程序被称为进程
  2. 进程状态
    完整进程状态变迁过程
  3. 进程控制结构
    进程控制块(process control block,PCB)数据结构来描述进程的
    每个 PCB 是如何组织的呢?
    链表,相同状态进程被组织连接到一起
  4. 什么是上下文
    任务切换时,cpu需要知道任务从哪里加载,又从哪里开始。
    操作系统需要帮cpu设置好cpu寄存器和程序计数器。一个进程切换到另一个进程运行,称为进程的上下文切换。
  5. 上下文切换切换的是什么
    包含了虚拟内存、栈、全局变量等用户空间的资源,还包括了内核堆栈、寄存器等内核空间的资源。
    在这里插入图片描述
  6. 上下文切换场景:
    时间片耗尽、系统资源不足,有更高优先级进程、sleep函数主动挂起、硬件中断。
  7. 什么是线程
    线程是进程中一条执行流程。同一个进程内多个线程之间共享相同地址空间
    在这里插入图片描述
  8. 线程和进程比较
    进程是资源分配的基本单位,线程是cpu调度的单位,
    进程拥有完整的资源平台,线程只独享必不可少的资源,如寄存器和栈。
    线程共享内存和文件资源减少切换开销
  1. 先来先服务
  2. 短作业优先调度算法
  3. 时间片轮转算法
  4. 最高优先级调度算法
    调度程序从就绪队列中选择最高优先级进程进行运行,被称为最高优先级调度算法。
  • 进程优先级划分
  • 动态、静态
  • 动态就是随着时间推移增加等待进程的优先级
  1. 多级反馈队列调度算法
    多级反馈队列(Multilevel Feedback Queue)调度算法是「时间片轮转算法」和「最高优先级算法」的综合和发展。
    设置了多个队列,每个多列分配不同优先级,每个队列中进程按照优先级从高到低排列,优先级高时间片越短,新的进程会被放入第一梯队的末尾,按照先来先服务等待调度。如果较高优先级队列为空回调度较低优先级队列中进程运行,如果进程运行有新进程进入较高优先级队列则终止当前进程接着运行较高优先级进程。

如图所示用户空间独立,不能相互访问,内核空间每个进程共享,所以进程通信必须要通过内核
在这里插入图片描述

管道

在这里插入图片描述

消息队列

a进程要给b进程发消息,a进程吧数据放在对应消息队列中后正常返回,b进程需要时就从中读取数据。消息队列存在于内核中,通信中存在用户态和内核态之间数据拷贝开销。
共享内存
进程a,b都拿出一块虚拟地址空间来映射到相同物理地址,这样进程写入东西另一个进程就可以马上看到。

信号量

为了解决两个进程同时修改同一个共享内存,出现冲突情况,采用信号量保护机制。信号量是一个整型计数器,用于实现进程间互斥和同步。
信号量表示资源数量,控制信号量有两种原子操作,一个是p,该操作信号量-1,盘点信号量是否大于等于0,满足则进程可以继续执行,一个是v信号量加一,相加后信号量小于等于0当前有阻塞的进程,于是会把进程唤醒运行。
在这里插入图片描述

信号

对于异常情况下工作模式,用信号方式通知进程。
信号事件来源有硬件来源和软件来源(kill)
信号是进程间通信机制中唯一的异步通信机制,因为可以在任何时候发送信号给某一进程,一旦有信号产生,可以采用执行默认操作、捕捉信号、忽略信号三种不同处理方式。

socket

到此这篇进程控制块是进程存在的唯一标志(进程控制块是进程存在的唯一标志对吗)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 发送验证码手机收不到验证码是什么原因(发送验证码手机收不到验证码是什么原因造成的)2025-05-14 23:18:10
  • M301h刷linux(M301h刷linux)2025-05-14 23:18:10
  • .py文件用什么打开(.py文件用什么打开运行比较快)2025-05-14 23:18:10
  • 单片机读取flash地址(单片机读写flash)2025-05-14 23:18:10
  • pppppppp(ppppppppppppppp啥意思ppppppppp)2025-05-14 23:18:10
  • linux可以这样学(linux系统怎么学)2025-05-14 23:18:10
  • 广度优先搜索是什么过程(广度优先搜索的原理)2025-05-14 23:18:10
  • 来自远方的作品集txt(来自远方的作品集TXT)2025-05-14 23:18:10
  • 安装win1032位系统(安装win1032系统c盘50g够吗)2025-05-14 23:18:10
  • exe反编译工具哪个好(exe文件反编译后能得到完整的源码吗?)2025-05-14 23:18:10
  • 全屏图片