操作系统_上午

根据架构图—画出请求数据流 —根据数据流经过的节点分析问题

负载机—经过网络传输到—应用服务器—跑服务—空闲中间件连接池(web请求连接池)_处理代码—通过网络把sql发送到—数据库连接池—请求发送到数据库服务器—数据库执行sql语句—将数据结果通过网络返回应用服务器—应用服务器对进程和线程唤醒—返回数据结果继续执行代码—将返回结果return—通过网络返回客户端

分析原因:

负载机(硬件)—网络—应用服务器(硬件)数据库服务器(硬件)—web容器连接池—数据库连接池—sql执行过程—代码的业务逻辑。(java会有jc一说)

分析操作系统

操作系统三大件

1、cpu:Cpu对操作系统影响最大-逻辑判断处理计算

2、内存:cpu工作需要的数据存在这里,相当于闪存和缓存,电脑重启后数据就释放了,例如qq进程强制被杀死,释放一块地址空间、如果在重新开启就开辟一块内存地址空间。非关 系型数据库nosql存在内存里Redis存放的key-value键值存储,内存比磁盘块很多。

如果发生内存满了、所以电脑卡了、重启就全部清空内存了。

3、磁盘:存储最终需要的数据永久存储、关系型数据库mysql、oracle数据存在磁盘里例如存一些报表,回收站清空时-清理的是磁盘、360提示清理垃圾、垃圾数据在磁盘上。
Cpu对操作系统影响最大-Cpu计算、逻辑判断的数据都存在内存里例如cpu进行if(a>0)逻辑判断但是数据a来自于内存。

4、固态硬盘:分散的读写速度更快 ,存储数据。

5、机械硬盘:读写是一个通道一个通道比较慢,存储数据。

6、二级缓存:lev1和lev2在cpu和内存之间、比内存速度更快。但是二级缓存很贵,现在已经没人用

7、磁盘的io:磁盘的读和写操作

8、一切问题揭io:数据库一般读写存在这个问题(数据库数据不再内存里在磁盘里)

读: Sql的执行过程—读操作从磁盘里读—读取后放内存(缓存数据)—在读内存

发生的原因

1) 不是热点数据:热点数据就是缓存在内存里的数据-常规数据,数据里缓存。

2) Sql语句写的有问题例如select  *  查询量很大。—全部从磁盘把数据搬家过来,读出来在进行判断过程会很长。

写:数据库语句insert写入到内存,这条sql就完成了,内存会自动同步到磁盘,再从内存放到磁盘上去。磁盘读速度不够快时,如果内存读取过程中电脑重启造成数据丢失。(取数据量很大、就读磁盘)

cpu利用率和cpu使用率是多少—硬盘利用率—磁盘io读写的大小

9、cpu利用率:时间片里面供应用程序工作的时间片+系统调度的时间片之和/总时间

例如:开启qq、录制屏幕、聊天yy电脑不卡

原因:

l Cpu时间切片:1s中切成65535份是串行操作,第一份供给a进程、第二份给b进程,  每份切换给不同的进程,cpu在同一瞬间只能处理同一个任务。时间片处理我们基本上看不到。

l Cpu把进程上下文切换:当前做什么事、回来再做什么事情。把当前进程状态保存起来、等待cpu切换回来继续执行。

10、cpu使用率:时间片切换出去之后,(时间片里面供应用程序工作的时间片(cpu读自己内存里的东西)+系统调度的时间片之和)/总时间。

11、cpu使用率越高-应用程序处理越慢的原因为:

供用户进程和系统进程工作时间比较多。

l 如果占比100%或者占比到90%等待cpu大部分时间都在给用户进程和系统进程工作。

l 存在概率为:都在为系统进程和用户进程工作、切时间片的时间越来越少,进程排队等待时切片越来越长、等待cpu调度代码时间越来越长,程序越来越慢。

面试题:cpu、内存、磁盘什么关系

Cpu:逻辑判断、计算处理。

内存:cpu工作的那些数据要从这里读取、数据存放。

磁盘:最终存放数据的地方。

例如:

cpu相当于工人—材料由工人加工。

内存相当于车间—工人在车间加工原材料、材料在内存放着,加工后临时放车间在放到仓库。

磁盘相当于仓库—加工后的放到仓库。

如果想提升加工效率——加人、加熟练工种就是cpu的赫兹

面试题:启动一个java进程

1、User是root  他占用的是消耗用户cpu还是消耗系统cpu

l 消耗用户cpu

2、java进程会写日志再往磁盘写数据,写日志的人是用户cpu还是系统cpu

l 消耗系统cpu-写磁盘时用户进程调用系统内核,切换到系统内核,系统内核调用底层命令在写日志

Us:用户消耗的cpu使用率 sy:系统消耗cpu使用率

 

负载

负载load average:三个参数代表:过去1分钟、5分钟、15分钟

负载如何计算:cpu正在调用的进程Run进程以及cpu等待io进程之和

命令vmstat     下图r就是代表在cpu运行的进程cpu正在调度的进程、b等待io的进程

负载值多少合理取决于cpu颗粒数、建议颗粒数的70%-80%

 

面试题

1、负载高cpu就一定高吗?负载低cpu就一定低吗?

例如:一个进程有大量复杂的计算会造成cpu很高、但负载就一个。

时间片都给了一个进程、一个进程cpu使用率很高,但是进程队里只显示一个Runing的所以负载不高。

反过来—有很多个进程运行只占用了cpu的20%多的时间片,但是系统还有大量进程等待、等待其他的外部io的返回、负载:Runing+io等待所以负载变大。

有关系但是不是绝对关系

进程状态为(有点懵逼)

举例子:ABC都启动

操作系统性能好坏看—cpu使用率还要看负载

正在调度的进程叫Running—等待io也叫中断状态、等待一个外部设备的输入或等待io的一个返回结果、然后在继续进行处理。

中断可恢复:等待外部输入例如input操作不知道什么时候返回结果

中断不可恢复:不断不可干预、会给个返回结果例如io系统内核在工作不可控制

这是负载是几个:

负载怎么去理解

例如:三条车道马路—三台以内最合理—如果四个车去跑就得有人排队等待—跑的车辆越多等待的就越多。

负载多少合理:取决于cpu颗粒数—一般建议是cpu颗粒数的 70%到80%

正在进程Running拿到cpu时间片的状态和等待IO进程之和

我们是单核cpu

Cpu使用率多少合适

IO密集型应用:(生活中用的比较多,建议cpu(s):us+sy不超过80%)读数据库从磁盘里取数据、把数据存到磁盘。

Cpu计算型应用:大部分时间都是计算特别消耗cpu

如何查看几核CPU

我的电脑—属性—设备管理器—处理器

原文地址:https://www.cnblogs.com/njq666/p/10861520.html

时间: 2024-10-27 09:36:00

操作系统_上午的相关文章

操作系统_程序的装入

我们知道,程序要执行,必须被CPU调用执行,而前提是装入到主存中.所以程序的装入对于操作系统来说,是一件非常重要的工作.要了解程序是如何装入到主存中,我们首先来了解下逻辑地址和物理地址. 主存的存储单元以字节为单位编址,每个存储单元都有一个地址与其对应.假定主存的容量是256M,即256*1024*1024=2^28个字节(256M=256*2^10K=256*2^10*2^10B),则该主存就有2^28个字节的存储空间,起地址编号为0,1,2,----2^28-1.这些地址称为主存的物理地址(

2016年4月2日_JAVA学习笔记_上午

1.昨天晚上忘记发布就直接关机了,算了.本就没写多少. 2.包这个小节还有类路径看书看的我一头雾水. 3.昨天看毕老师视频时讲到了类的四个权限等级,从封装性最好到最开放依次是,private,默认,protected,public. private:仅允许当前类进行访问: 默认:允许当前类和当前包进行访问: protected:允许当前类和当前包,以及其他包中的子类: public:允许所有人进行访问 4.在shell命令运行java时,需要注意类路径,如果当前目录下没有找到,会在classpa

操作系统_程序的链接

程序经过编译后,得到一组目标模块(Object Module),再经过链接程序将这组目标模块链接起来,形成一个完整的装入模块.如图.经过编译后得到三个目标模块A,B,C,它们的长度分别为L,M,N.其中B和C属于外部调用符号.根据链接时间的不同,程序的链接可分为三种方式:静态链接,装入时动态链接,运行时动态链接     1:静态链接.在程序运行之前,首先将各个目标模块以及所需要的库函数链接成一个完整的装入模块,又称为可执行文件,运行时可直接将它装入主存. 2:装入时链接.用户源程序经过编译后得到

操作系统_第二章_进程与线程

2018-06-30 1.进程:对正在运行的程序的一个抽象 2.一个进程就是一个正在执行的程序的实例 3.快速的切换称为:多道程序设计 4.一个进程是某种类型的一个活动,它有程序,输入,输出,以及状态 5..四种主要的事件会导致进程的创建 系统初始化 正在运行的程序执行了创建进程的系统调用 用户请求创建一个新进程 一个批处理作业的初试化 6.停留在后台进程的称为守护进程 7.shell中键入sort就可以创建进程了 8.内存一般使用写时复制的方法进行内存共享 9.进程的终止 正常退出 出错退出

《操作系统_时间片轮转RR进程调度算法》

转自:https://blog.csdn.net/houchaoqun_xmu/article/details/55540250 时间片轮转RR进程调度算法 一.概念介绍和案例解析时间片轮转法 - 基本原理:  在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片.时间片的大小从几ms到几百ms.当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾:然后,

[自制简单操作系统] 1、从0-1到汇编再到c语言的奥秘

目录: 1.用0-1编写最简单的操作系统 2.用汇编改写上面0-1程序 2.1 只用DB的汇编改写版  2.2 加入RESB汇编的改写版  2.3 进一步使用汇编替换0-1文件  2.4 核心程序也用汇编改写  2.5 向汇编程序中加入IPL(启动程序装载器)  2.6 从启动区执行操作系统(读盘的应用) 3.汇编和C语言混合开发 3.1 32位开发及C语言混合开发引入 3.2 汇编引入C语言(用汇编写C语言函数)  3.3 C语言实现内存写入  3.4 C语言指针的强大  3.5 色号设定与调

操作系统内存分配

when why what how 为什么 OS 需要中断.系统调用.异常? why? 现实中有不少恶意应用,如果它能随意调用系统的一些指令,那后果不堪设想.那么就需要有个人确保其安全,操作系统可以信任其安全所以如果一些应用需要调用系统的一些指令通过操作系统来检查确保其安全. 中断:是指CPU对系统发生的某个事件做出的一种反应,CPU暂停正在执行的程序,保留现场后自动地转去执行相应的处理程序,处理完该事件后再返回断点继续执行被"打断"的程序. 如果某一个程序运行了足够长用完了分配给它的

atitit.跨语言执行cmd cli api的原理及兼容性设计草案

atitit.跨语言执行cmd cli api的原理及兼容性设计草案 1. 标准输入,标准输出,标准错误与重新定向1 2. 常见问题2 2.1. 执行bat文件2 2.2. 执行bat文件  /c  与/k   /k  参数,有利于调试2 2.3. Bat参数的隐藏命令::使用@后头符2 2.4. 空格的问题 双引号解决2 2.5. 回显乱码 cmd win默认是gbk编码..使用gbk编码读取佐ok2 2.6.  双引号转译问题2 2.7. Name param的问题2 3. Java cod

bash keys

stty-a CTRL-S and CTRL-Q are called flow-control characters. Bash readline 使用技巧_Linux编程_操作系统_希赛网 http://www.educity.cn/os/518584.html