5.cpu管理的直观想法

【README】

本文内容总结自 B站 《操作系统-哈工大李治军老师》,内容非常棒,墙裂推荐;

本文主要介绍了操作系统管理cpu的大致内容;


【1】操作系统管理硬件

1)    多进程管理视图: cpu 管理,内存管理;
2)    文件操作视图: 键盘显示器,磁盘,文件管理等;


【1.1】 设备管理初始化(main函数)

把硬件参数读入内存,以便管理;

包括 内存,缓冲区,硬盘等;

用户态程序 通过系统调用(操作系统接口或系统函数)进入内核态;


【1.2】系统调用底层细节

1)涉及 cpu管理,内存管理,磁盘管理,终端设备管理;

  • 其中 cpu和内存管理是多进程视图
  • 终端设备和磁盘管理是文件视图;


【1.3】cpu,内存,磁盘,终端管理等的具体实现

硬件管理的具体内容:


 【2】CPU管理

补充: 多进程视图包含 cpu管理,内存管理;
多进程图像:

  • 操作系统在管理CPU的时候,引出了多进程图像;即通过多进程图像,操作系统管理明白了 CPU;
  • 所以多进程图像是操作系统的核心图像

【2.1】使用cpu

1)cpu工作原理

2)cpu怎么工作,怎么管理

管理cpu的最直观方法就是设置pc-程序计数器寄存器的值就可以了;

3)这样做的问题?

  • 有fprintf 与 没有fprintf的执行时间的比值: 10^6 : 1;
  • 即有io指令与没有io指令的执行时间比为: 10^6 : 1 ;
  • 可以看到 io操作特别耗时;

4)问题如何解决

多道程序:

  • 指的是多个程序在内存中;

解决方法:多道程序交替执行, 让cpu忙碌起来;

注意:关注cpu利用率;


【2.2】cpu执行的核心

1)cpu执行核心:多道程序交替执行; 多个程序放在计算机内存中;
补充:

  • 并发指一个cpu上交替执行的多个程序;

 2)如何做到程序并发执行的?
通过修改PC寄存器的值,来修改下一条执行指令的地址,从而达到切换程序的目的;


【3】 引入进程概念

1)进程定义:

  • 进行(执行)中的程序;
  • 进程需要记录 寄存器的状态,而程序不用;

2)更具体的:

  • 进程是一种结构体,用于存储程序运行所需的状态信息(上下文信息),如cpu所有寄存器数据,栈信息等,以便操作系统管理程序的运行;

3)进程与程序区别

  • 进程指的是运行的程序(动态);
  • 程序指的是静止的程序;


【总结】cpu管理

1)定义:

  • 就是让程序执行起来;启动一个进程,让cpu去执行这个进程;
  • 让cpu更好工作,操作系统需要启动多个进程,然后cpu去跑多个进程,cpu利用率提高,cpu就可以实现更好的管理了;

所以cpu运行多个进程的状态,就是cpu被很好管理的核心内容;

2)PCB

  • 指的是  process control block, 进程控制块,是一个结构体(数据结构),用于记录进程状态;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python基础教程zip密码_python基础教程Python实现加密的RAR文件解压的方法(密码已知)...

博主之前在网上找了很多资料,发现rarfile库不能直接调用,需要安装unrar模块,下面将详细介绍整个实现流程。第一步:安装unrar模块,直接pip install unrar可能会找不到库,需要下载unrar library,也就是UnRAR.…

Oracle入门(九)之用户、角色与权限之间关系

转载自 Oracle 用户,角色,权限等权限管理是 Oracle 系统的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限。Oracle 的权限分为系统权限和数据对象权限,共一百多种,如果单…

Windows原生运行Linux的技术细节

Microsoft最近宣布了将Linux Bash与Windows 10进行集成的意图,通过这种集成,Windows 10用户将能在操作系统中原生运行Linux ELF64二进制程序。为避免对该技术的实现方法产生错误的猜测,Windows Subsystem for Linux团队主管Deepu Thomas详细介…

6.操作系统多进程图像

【README】 本文内容总结自 B站 《操作系统-哈工大李治军老师》,内容非常棒,墙裂推荐; 多进程图像定义:多个进程使用cpu的图像; 多进程图像是操作系统的核心图像; 【1】概述 1) PCB&#xf…

骞云科技 python_骞云科技SmartCMP6.0版本正式发布!

骞云科技作为业内领先的云管理平台及服务提供商,秉持着强力助推企业客户全面提升IT管理水平的理念。历时106天的精细打磨,涵盖110个新功能用户故事,倾注上百位研发、产品、测试小伙伴的心血投入,累计完成4343次代码提交&#xff0…

Oracle入门(五E)之讲解show parameter命令模糊查询

转载自 讲解Oracle show parameter命令的小技巧Oracle参数查询命令show parameter的一个小技巧,可以使用模糊查询,比如我想查询包含db_的参数,那么我就可以用: SQL> show parameter db_; NAME TYPE VALUE --------------------…

.NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践

晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper,花了10分钟简单了解了一下。 看评论也是挺有价值,同时也看到许多新手同学问道在实际项目中使用的情况。 下面就原作者的代码的基础上略作调整…

myeclipse窗口布局控件任意_木辛老师的编程课堂:Python和Qt第2讲之布局管理初探(三)...

在主窗口中放置多个控件,最好的方法是使用布局。控件的布局是学习PyQt路上比较关键也也是比较难理解的部分,赶快跟着木辛老师一起去看看吧。请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习Python编程知识,变身快乐的编程达…

7.用户级线程

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》,内容非常棒,墙裂推荐; 2.本文会介绍进程与线程的区别,线程切换,用户态线程,内核级线程等; 【1】多进程回顾 问题&#xff1a…

Oracle入门(五D)之如何设置show parameter显示隐含参数

转载自 oracle如何设置show parameter显示隐含参数在sqlplus中show parameter是显示不了隐藏参数的,需要做一个处理,如下所示: 以SYS用户登录: C:\Documents and Settings\guogang>sqlplus / as sysdba; SQL> create or r…

使用VS Code 从零开始开发并调试.NET Core 应用程序

使用VS Code 从零开始开发并调试.NET Core 应用程序,C#调试。上一篇 使用VS Code开发 调试.NET Core 应用程序 得到了大家的支持。 现在为大家带来从零开始教程,让你更好的了解.NET Core 应用程序。使用VS Code 开发C# 程序 并调试程序。 并且也会解决上…

8.内核级线程(核心级线程)

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》,内容非常棒,墙裂推荐; 2.为什么要讲线程呢。实际要讲进程的切换;进程的切换包括切换指令,切换资源;切换指令就是切换线程(简…

Oracle入门(五F)之11g show spparameter 命令的使用

转载自 oracle 11g show spparameter 命令的使用 当我们要获取oracle数据库当前的参数值时,可以通过查询v$parameter动态性能视图得到,当然了也可以使用show parameter p_name这样的方式得到。但是在Oracle11g以前,show parameter只能获得当前…

跨平台与云端创新,为企业和开发者开辟更广阔的未来

从制造业到零售业,从市场营销到客户关系,数字化转型正在给各行各业带来巨大的变革和冲击。面对云计算、大数据、社交和移动计算,企业需要更主动地加速自身业务模式的转变,而开发者和开发团队将在这一转变过程中发挥至关重要的作用…

注解@resource的作用_Bean基于Annotation(注解)的装配方式

在Spring中,尽管使用XML配置文件可以实现Bean的装配工作,但如果应用中有很多Bean时,会导致XML配置文件过于臃肿,给后续的维护和升级工作带来一定的困难。为此,Spring提供了对Annotation(注解)技术的全面支持。Spring中…

Oracle入门(十二H)之设置、恢复和删除不可用列

转载自 Oracle设置和删除不可用列一、不可用列的定义 1、不可用列是什么? 就是表中的1个或多个列被ALTER TABLE…SET UNUSED 语句设置为无法再被程序利用的列。 2、使用场景? If you are concerned about the length of time it could take to drop colu…

9.内核级线程代码实现

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》,内容非常棒,墙裂推荐; 【说明】 本文中提到的父线程可以理解为父进程因为进程包括运行资源和执行指令,又执行指令表示为线程,所以也可以说 进程包括…

python 列表生成表格_【转】Python 列表生成式

原文:https://blog.csdn.net/heartyhu/article/details/509880071. 生成列表要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11):>>> range(1, 11)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]但如果要生成[1x1, 2x2, 3x3, ……

Linux(CentOS 6.7)下配置Mono和Jexus并且部署ASP.NET MVC3、4、5和WebApi(跨平台)

1.开篇说明 a. 首先我在写这篇博客之前,已经在自己本地配置了mono和jexus并且成功部署了asp.net mvc项目,我也是依赖于在网上查找的各种资料来配置环境并且部署项目的,而其在网上也已有了很多这方面的文章,故而我就想我是写还是不…

10.操作系统演进过程

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》的《操作系统的那棵树》,内容非常棒,墙裂推荐; 2.思维僵化与发散 the mind is not a vessel that needs filing, but wood that needs igniting. 头脑不是需要归档的容器&am…