首页 > 系统相关 >进程

进程

时间:2023-06-13 15:46:22浏览次数:36  
标签:调度 PCB 原语 内核 进程 运行

进程

进程的描述
  • 进程的定义:进程是进程实体(程序)的一次运行过程,是系统进行资源分配和调度的一个独立单位

  • 进程的基本特征

    • 动态性:进程实质是进程实体的运行过程
    • 并发性:多个进程实体同时存在于内存中,且可以同时运行
    • 独立性:传统OS中,独立性是指进程是一个能独立运行、独立获取资源和独立接受调度的基本单位
    • 异步性:进程异步运行,进程各自独立、以不可预知的速度运行
  • 进程的三种基本状态

    • 就绪
    • 执行
    • 阻塞

    挂起原语Suspend与激活原语Active的引入:

    • 使进程处于静止状态
  • 进程控制块PCB

    • 作为进程实体的一部分,PCB记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中重要的记录型数据结构
    • 进程的作用:将程序->进程
      1. 作为独立运行基本单位的标志
      2. 实现间断性运行
      3. 提供进程管理所需要的信息
      4. 提供进程调度所需要的信息
      5. 实现进程间通信
    • PCB的组成:
      • 进程标识符:包括外部标识符与内部标识符,前者方便进程(用户)对进程的访问,通常由字母+数字组成,后者方便系统对进程的访问,通常由数字组成,也代表进程的序号
      • 处理机状态:
        1. 通用寄存器
        2. 指针计数器
        3. 程序状态字PSW
        4. 用户栈指针
      • 进程调度信息
        1. 进程状态
        2. 进程优先级
        3. 进程调度的其他信息,如进程等待的时间,进程执行的时间等
        4. 事件:阻塞原因
      • 进程控制信息
        1. 程序和数据的地址
        2. 进程同步和通信机制
        3. 资源清单:运行期所需资源
        4. 链接地址:指向本队列中下一个进程的PCB首地址
进程控制
  • 操作系统内核

    • 管态(系统态):具有较高特权,能执行一切指令,访问所有寄存器和存储区
    • 目态(用户态):具有较低特权,能执行规定的指令,访问指定的寄存器和存储区

    管态与用户态存在的意义:防止OS本身的数据或一些关键的数据被破坏

  • 操作系统内核提供的最基本的支撑功能

    • 中断处理
    • 时钟管理
    • 原语操作:原语操作由若干指令组成,原语操作中的指令具有原子性,原语在执行过程中不允许被中断

GDT划分用户空间和内核空间

kernel提供系统调用,使用GDT划分空间保护内核

使用中断(由晶振器提供的)实现时分复用,cpu在每次中断,进行一次上下文切换(保护进程现场),根据进程调度运行下一个进程

INT 0x80 发生系统调用时cpu 的一个指令,发生系统调用就进行用户态与内核态的切换

标签:调度,PCB,原语,内核,进程,运行
From: https://www.cnblogs.com/lanan-blog/p/17477724.html

相关文章

  • 进程调度
    进程调度进程调度分为抢占式调度和非抢占式调度非抢占式调度抢占式调度指进程不会因为时钟中断或其它任何原因区抢占当前正在运行进程的处理机,只有当该进程被阻塞时,处理机才会被分配给其它进程,导致非抢占式进程调度的原因有:进程执行完毕进程因为IO等阻塞进程通信或同步......
  • 进程和线程
    概念进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,是竞争计算机系统资源的基本单位线程:是进程的一个执行单元,是进程内调度实体,比进程更小的独立运行的基本单位进程线程区别地址空间:线程共享本进程的地址空间和资源,而进程之间是独立的地址空间和资......
  • 关于进程、线程、协程的概念以及Java中的应用
    进程、线程、协程本文将从“操作系统”、“Java应用”上两个角度来探究这三者的区别。一、进程在我本人的疑惑中,我有以下3个问题。1.1为什么要引入进程?在“多道程序环境下”,允许多个程序并发执行,此时它们将失去封闭性,并具有间断性以及不可再现性的特征,因此需要引入进程的概念......
  • oracle 数据库当前连接查询 被占用的连接 哪些用户正在使用数据 杀掉进程
    --查询数据库当前进程的连接数:selectcount(*)fromv$process;--查看数据库当前会话的连接数:selectcount(*)fromv$session;--查看数据库的并发连接数:selectcount(*)fromv$sessionwherestatus='ACTIVE';--查看当前数据库建立的会话情况:selectsid,serial#,username,pr......
  • 进程在用户态和内核态的区别[独家解析]
     先看基础常识:基础内核在创建进程的时候,会为进程创建相应的堆栈。   每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。 当进程在用户空间运行时,CPU寄存器里面的内容是用户堆栈地址,使用用户栈  当进程在内核空间时,CPU寄存器里面的内容是内核栈......
  • 根据进程找出执行进程的用户
    为了根据进程找出work用户的IP,需要使用以下步骤:执行如下命令列出所有进程以及它们的详细信息:ps-ef在输出结果中,找到工作(work)用户对应的进程,并记录下该进程的PID。执行如下命令查看与该进程相关的网络连接信息:netstat-anp|grep[PID]将[PID]替换为第二步中记......
  • 根据进程查看内存使用情况
    根据进程查看内存使用情况使用以下命令找到进程ID(PID):psaux|grep<进程名>其中,“<进程名>”是您要查找的进程名称。此命令将返回相关进程的所有详细信息(包括PID、用户等)和进程名。在上面的输出结果中,查找目标进程的PID。执行以下命令,以使用PID来检索该进程的内存占用......
  • 根据端口找到进程pid
    [root@localhostluban]#netstat-anp|grep"8999"tcp600:::8999:::*LISTEN93234/./luban#这里的93234就是占用8999端口进程的pid[root@localhostluban]#ps-ef|greplubanroot9323491770016:......
  • windows下如何杀掉Tomcat进程
    问题描述:使用IDEA启动java中的SSM项目之后,服务正常运行。操作过程中不小心把IDEA开发工具给关闭啦,导致tomcat没有正常停止,使用的端口8080仍然被占用。再次打开IDEA,启动项目报错,报一个端口被占用的错误。这时候该如何解决这个问题呢? 问题演示先启动项目,端口为8080。......
  • 多线程和多进程
    在真实业务中不单单会涉及CPU计算,还有网络IO和磁盘IO处理,这些处理是非常耗时的。如果一个线程整个流程是上图的流程,真正涉及到CPU的只有2个节点,其他的节点都是IO处理,那么线程在做IO处理的时候,CPU就空闲出来了,CPU的利用率就不高。多线程:提升CPU利用率。 最佳线程数目=((线程等......