IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 进程与线程 -> 正文阅读

[系统运维]进程与线程

一.进程

1.进程是什么

进程就是一个正在运行的程序(任务) ——任务管理器里就能看到很多进程,对操作系统来说一个任务(为了完成某个目的所要所得一系列事情)就是一个进程。

2.操作系统如何管理进程

(1)描述:task struct(进程描述符 Linux内核的一种数据结构 )

(2)组织:用双向链表把很多task struct变量给串起来。(例如 ,看到任务管理器,就可以认为是操作系统内核遍历了这个双向链表,然后把每个节点的信息获取出来并展示。)

3.一个进程的task struct里大概有什么信息

(1)pid(进程ID)

(2)进程的内存指针:描述了进程持有的内存资源是哪些范围(进程依赖的代码,数据都在哪里)

(3)进程的优先级

(4)进程的上下文(某个进程在cpu上执行了一段时间之后,就需要调度下去了,但可能还会再未来的某个时间段继续回到cpu上往下执行,这个进程就需要把上次执行的状态给记录下来,记录的内容是当时cpu的各个寄存器的值,记录在内存中,以便下次运行时可以恢复之前的现场,继续往下执行)

(5)进程的记账信息(就像是统计信息,记录每个进程在cpu上执行多久了,调度多少次了)

(6)进程的状态(创建,就绪,执行,阻塞,终止)

(3)-(5)提供的信息 都是为了辅助进程的调度(进程的调度是一个抢占式执行的过程,调度工作完全是由操作系统内核负责的,进程不知道自己接下来的命一切都听从于操作系统)

4.并行与并发:

(1)并行:多个进程在多个cpu下分别同时运行。

(2)并发:多个进程在一个cpu下你运行一会后换我运行,我运行一会后再换别的进程运行,让多个进程都得以推进。

现在表述的时候一般都用并发 又可以代指并行也可以指并发 看情况而定 但是都说成并发。

5.内核态与用户态

(1)内核态:操作系统内核来执行任务

(2)用户态:应用程序来执行任务

完整的操作系统=操作系统内核+配套的应用程序

6.为什么要引入进程

(1)让操作系统能够支持多“任务”

(2)更加充分的利用cpu资源

二.线程

1.进程和线程的区别:

(1)根本区别:进程是系统分配资源的最小单位,线程是系统调度的最小单位

(2)开销方面:进程都有自己的独立数据空间,创建和销毁的开销比较大:线程也有自己的运行栈和程序计数器,但创建和销毁的开销比较小。

(3)一个进程“挂了”并不会影响其他进程,但是一个线程出现异常,会影响到别的线程(因为它们共享一些内存资源)或者这个进程的。

2.进程是为了实现并发编程的效果,但是为了追求更高的效率就引入了线程,线程也被称之为“轻量级进程”,一个进程内的线程之间是可以共享资源的,每一个进程至少有一个线程存在,即主线程,每一个线程就对应到一个“独立的执行流”,在这个执行流里就可以完成一系列指令,多个线程就有多个“执行流”,就可以并发的完成多个系列的指令了,但是线程也不是越多越好,在线程数目达到一定的数量下,继续增加线程,这时候多个线程为了竞争cpu资源就会占用更多的开销(线程多了调度的开销也就多了),这时候不但不会提高效率,反而还会降低效率。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:31:17  更:2021-08-26 12:32:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:38:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码