进程Start

Linux中的命令解释器和Windows的程序管理器explorer.exe一样地位,都是在用户态下运行的

进程

共享变量发生不同进程间的指令交错,就可能会数据出错

进程只作为除CPU之外系统资源的分配单位
CPU的分配单位是线程

每个进程都有自己的独立用户空间
内核空间是OS内核的专用地址空间,它是所有进程共享的,只有一个
内核空间是共享的,但每个进程在内核空间执行时,会使用自己独立的内核栈(位于内核空间)

进程映像:进程存放在内存的程序,数据,用户栈

PCB:系统管理控制进程运行用的一些信息集合
1.进程标识信息
2.处理机状态信息保存区(核心栈),保存进程进入OS内核的运行现场信息(通用寄存器,控制和状态寄存器)
3.进程控制信息
OS调度进程占用处理机的信息
进程状态信息
进程间通讯信息
存储管理信息(描述进程映像存储空间的数据结构)
进程所用资源信息

进程状态

运行状态:正在处理机上运行
就绪状态:进程获得了除处理机之外的一切所需资源,只差处理机
阻塞状态:进程正在等待某一事件而暂停运行(如:等待打印机,等待某个独占型的数据,等待IO结束)
在这里插入图片描述
就绪状态的进程如果被进程调度选中,就变为运行状态
在这里插入图片描述

进程控制和调度

进程切换过程:
保存CPU的上下文(PC寄存器,处理机状态字PS,其他寄存器)
修改当前运行进程的PCB内容
选择另一个进程
修改被调度选中的进程的PCB内容
恢复被选中进程的CPU现场
进程调度:
非剥夺:正在运行的进程主动放弃CPU时,才运行调度程序
剥夺:进程正在CPU上运行,此时也可以进行调度

计算机定时的来时钟中断
中断处理程序运行,判断进程的时间片是否用完,用完了就会运行调度程序,选取另一个进程运行

引起进程调度的因素:
1.进程主动放弃处理机
-正在运行的进程执行完毕(OS在处理“进程结束”系统调用后,会请求重新调度)
-正在运行的进程发出I/O请求(I/O请求没有完成前,进程是阻塞状态)
-正在运行的进程要等待其他进程或OS发出的事件
-正在运行的进程暂时得不到所要的系统资源
2.有新进程就绪时
3.时钟中断发生时,时钟中断处理程序调用有关时间片的处理程序,发现正在运行的进程时间片到了,请求重新调度
4.任何原因引起进程的优先级发生变化时

进程调度的时机
1.发生了引起进程调度的条件,且当前进程无法继续运行下去时
2.中断处理结束或者系统调用处理结束,返回被中断进程的用户态程序执行前,若申请调度标志置上,则马上进行调度和切换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/98245.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt day2

目录 1.多态,虚函数,纯虚函数 1.多态性(Polymorphism): 2.虚函数(Virtual Function): 3.纯虚函数(Pure Virtual Function): 将引用作为函数参…

智能感测棒形静电消除器所具备的特点

智能感测棒形静电消除器是一种具有联网监控功能的设备。它可以通过内置的传感器实时感知周围的静电情况,并采取相应的措施进行消除。 该设备通过联网功能,可以将感测到的静电信息传输到指定的监控平台或手机应用程序中进行实时监控与管理。用户可以随时…

Ansible学习笔记15

1、roles:(难点) roles介绍: roles(角色):就是通过分别将variables,tasks及handlers等放置于单独的目录中,并可以便捷地调用他们的一种机制。 假设我们要写一个playbo…

分类模型评估指标——准确率、精准率、召回率、F1、ROC曲线、AUC曲线

机器学习模型需要有量化的评估指标来评估哪些模型的效果更好。 本文将用通俗易懂的方式讲解分类问题的混淆矩阵和各种评估指标的计算公式。将要给大家介绍的评估指标有:准确率、精准率、召回率、F1、ROC曲线、AUC曲线。 机器学习评估指标大全 所有事情都需要评估好…

C语言控制语句——循环语句

什么是循环 重复执行代码 为什么需要循环 循环的实现方式 whiledo…whilefo while语句 语法格式&#xff1a; while (条件) {循环体…… }需求&#xff1a;跑步5圈 示例代码&#xff1a; #include <stdio.h>int main() {// 需求跑步5圈// 1. 条件变量的定义int i 1;…

大数据学习:impala基础

impala基础 1. impala介绍 1.1 impala概述 Impala是Cloudera公司推出&#xff0c;提供对HDFS、Hbase数据的高性能、低延迟的交互式SQL查询功能。官方测试性能比hive快10到100倍&#xff0c;其sql查询比sparkSQL还要更加快速&#xff0c;号称是当前大数据领域最快的查询sq工具…

php插件Workerman聊天室示例

chat.php内容如下 <?php//使用workerman&#xff0c;只需引入这个文件require_once "workerman-4.0/Autoloader.php";//创建服务器&#xff0c;监听3000端口$wsServernew \Workerman\Worker("websocket://127.0.0.1:3000");$wsServer->onConnectfu…

Java 数据结构使用学习

Set和List的区别 Set 接口实例存储的是无序的&#xff0c;不重复的数据。List 接口实例存储的是有序的&#xff0c;可以重复的元素。 Set 检索效率低下&#xff0c;删除和插入效率高&#xff0c;插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。 List 和数…

13、监测数据采集物联网应用开发步骤(9.2)

监测数据采集物联网应用开发步骤(9.1) TCP/IP Server开发 新建TCP/IP Server线程类com.zxy.tcp.ServerThread.py #! python3 # -*- coding: utf-8 -Created on 2017年05月10日 author: zxyong 13738196011 import socket,threading,time from com.zxy.tcp.TcpServer import …

Java 多线程系列Ⅰ(创建线程+查看线程+Thread方法+线程状态)

多线程基础 一、创建线程的五种方法前置知识1、方法一&#xff1a;使用继承Thread类&#xff0c;重写run方法2、方法二&#xff1a;实现Runnable接口&#xff0c;重写run方法3、方法三&#xff1a;继承Thread&#xff0c;使用匿名内部类4、方法四&#xff1a;实现Runnable&…

树莓派4B上安装Gitlab

参考连接&#xff1a; 树莓派上使用 GitLab 搭建专业 Git 服务 | 树莓派实验室 gitlab reconfigure 卡住 ruby_block[wait for redis service socket] action run_芹菜学长的博客-CSDN博客 以及用到了讯飞星火 系统版本信息 1.进入 giblab安装页面gitlab/gitlab-ce - Instal…

可拖拽编辑的流程图X6

先上图 //index.html&#xff0c;有时候可能加载失败&#xff0c;那就再找一个别的cdn 或者npm下载&#xff0c;如果npm下载&#xff0c; //那么需要全局引入或者局部引入&#xff0c;代码里面写法也会不同&#xff0c;详细的可以看示例<script src"https://cdn.jsdeli…

openGauss学习笔记-56 openGauss 高级特性-DCF

文章目录 openGauss学习笔记-56 openGauss 高级特性-DCF56.1 架构介绍56.2 功能介绍56.3 使用示例 openGauss学习笔记-56 openGauss 高级特性-DCF DCF全称是Distributed Consensus Framework&#xff0c;即分布式一致性共识框架。DCF实现了Paxos、Raft等解决分布式一致性问题典…

“北科Java面试宝典(211最详细讲解)“

Version : V1.0 北科Java面试宝典一、Java基础面试题【24道】二、JVM虚拟机面试题【14道】三、集合相关面试题【17道】四、多线程 【25道】五、IO【5道】六、网络编程 【9道】七、MySQL以及SQL面试题【20道】八、常用框架【19道】九、中间件和分布式 【54道】十、设计模式面试 …

unity 之 如何获取父物体与子物体

文章目录 获取父物体获取子物体 获取父物体 在Unity中&#xff0c;你可以使用Transform组件的属性来获取对象的父物体。以下是在C#脚本中如何获取父物体的示例代码&#xff1a; using UnityEngine;public class GetParentExample : MonoBehaviour {void Start(){// 获取当前物…

R3LIVE源码解析(6) — R3LIVE流程详解

目录 1 R3LIVE框架简介 2 R3LIVE的launch文件 3 R3LIVE的r3live_config文件 4 R3LIVE从哪开始阅读 1 R3LIVE框架简介 R3LIVE是香港大学Mars实验室提出的一种融合imu、相机、激光的SLAM方法&#xff0c;R3LIVE由两个子系统组成&#xff0c;一个激光惯性里程计&#xff08;L…

网站常见安全漏洞 | 青训营

Powered by:NEFU AB-IN 文章目录 网站常见安全漏洞 | 青训营 网站基本组成及漏洞定义服务端漏洞SQL注入命令执行越权漏洞SSRF文件上传漏洞 客户端漏洞开放重定向XSSCSRF点击劫持CORS跨域配置错误WebSocket 网站常见安全漏洞 | 青训营 网站常见安全漏洞-网站基本组成及漏洞定义…

1、Spring是什么?

Spring 是一款主流的 Java EE 轻量级开源框架 。 框架 你可以理解为是一个程序的半成品&#xff0c;它帮我们实现了一部分功能&#xff0c;用这个框架我们可以减少代码的实现和功能的开发。 开源 也就是说&#xff0c;它开放源代码。通过源代码&#xff0c;你可以看到它是如何…

学习ts(十一)本地存储与发布订阅模式

localStorage实现过期时间 目录 准备 安装 npm i rollup typescript rollup-plugin-typescript2// tsconfig.json"module": "ESNext","moduleResolution": "node", "strict": false, // rollup.config.js import …

android studio安装教程

1、android studio 下载 下载网址&#xff1a;Download Android Studio & App Tools - Android Developers 2、开始安装 因为不需要每次连接手机进行调试&#xff0c;android studio给我们提供了模拟器调试环境。 一般选择自定义安装&#xff0c;这样可选sdk以及下载路径…