原因总结 产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。 下面内容是具体的原理分析:在分析负载为什么高之前先介绍下什么是负载、多任务操作系统、进程调度等相关概念。 什么是负载 什么是负载:负载就是cp ...
分类:
其他好文 时间:
2018-05-08 14:21:55
阅读次数:
156
// 任务结构 typedef struct _TASK_COMPONENTS { uint8 Run; // 程序运行标记:0-不运行,1运行 uint8 Timer; // 计时器 uint8 ItvTime; // 任务运行间隔时间 void (*TaskHook)(void); // 要运行 ...
分类:
其他好文 时间:
2018-05-06 14:49:34
阅读次数:
205
减少上下文切换的方法有无锁并发编程、CAS算法、使用最少线程和使用协程。1. 无锁并发编程。多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,可以用一些办法来避免使用锁,如将数据的ID按照Hash算法取模分段,不同的线程处理不同段的数据。2. CAS算法。Java的Atomic包使用CAS算法 ...
分类:
其他好文 时间:
2018-05-04 12:05:19
阅读次数:
173
(本文原创,首次使用OpenMP,将使用体会记录下来供学习) OpenMP是啥玩意??? 多核多线程处理器的出现,让并行计算成为可能。在此之前,单核处理器并不能并行计算,这是很显然的,只有一个核心只能做到并发处理(与并行处理区别),这是一种虚拟化的技术,让用户感觉计算机在同时处理多任务,而事实上是通 ...
分类:
其他好文 时间:
2018-05-02 21:03:06
阅读次数:
182
前言 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。 本文的分析全部基于Linux Kernel 2.6.32,源代码的链接地址:https://elixir.bootlin.com/linux/v2.6.32 ...
分类:
系统相关 时间:
2018-05-02 02:32:08
阅读次数:
271
0.摘要 关于Linux系统进程的分析 本文内容包括对Linux、进程、进程状态、进程调度的简述与个人理解。 1.Linux 1.1Linux是什么 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的 ...
分类:
系统相关 时间:
2018-05-01 20:48:31
阅读次数:
232
1. 前言Linux操作系统的简易介绍 Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。 (1)内核 内核是操作系统的核心,具有很多最基本功能,如虚拟内存、多任务、共享库、需 ...
分类:
系统相关 时间:
2018-05-01 20:30:30
阅读次数:
218
8.1 基本介绍 Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账户,然后以这个账户身份进入系统。 Linux的用户需要至少要属于一个组。 8.2 添加用户 8.2.1 基本语法 useradd [选项] 用户名 8.2.2 实际案例 添加一 ...
分类:
系统相关 时间:
2018-05-01 15:16:42
阅读次数:
207
前言: 这是一篇关于linux操作系统的简单介绍。linux本身不能算是操作系统,只是一个内核,基于linux内核的操作系统有很多,比如流行的android,ubuntu,红旗linux等等。Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。L ...
分类:
系统相关 时间:
2018-05-01 12:24:39
阅读次数:
260
前言:在现在的操作系统中有很多种,我主要是讲讲Linux操作系统的,首先我们了解一下Linux系统,Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位 ...
分类:
系统相关 时间:
2018-05-01 01:05:24
阅读次数:
254