首页 > 其他分享 >第三章读书笔记

第三章读书笔记

时间:2022-10-07 14:58:21浏览次数:54  
标签:第三章 读书笔记 休眠 进程 多任务处理 执行 PROC CPU

第三章读数笔记

Unix/Linux进程管理

3.1多任务管理

  • 一般来说,多任务处理指的是同时进行几项独立活动的能力。在计算机技术中,多任务处理指的是同时执行几个独立的任务。在单处理器(单CPU)中,一次只能执行一个任务,多任务处理是通过在不同任务之间多路复用CPU的执行时间来实现的,即将CPU执行操作从一个任务切换到另一个任务。这种逻辑并行性被称为“并发”。在多处理器(多核CPU)中,同时执行多个任务这种并行性称为“并行”。

3.2进程的概念

  • 在操作系统种中,任务也称为进程,与程序不同,程序是静态的,而进程是动态的。在实际应用中,进程和任务这两个术语可以互换。
  • 进程的定义:进程是对映像的执行。
  • 进程的数据结构:进程控制块(PCB)或任务控制块(TCB),称为PROC结构体。一个简单的PROC结构体如下:
  • 单CPU系统中,操作系统内核经常会使用PROC指针,指向当前正在执行的PROC。
  • 多CPU的多处理操作系统中,可在不同的CPU上实时、并行执行多个进程。因此多处理器系统中正在运行的[NCPU]可能是一个指针数组,每一个元素指向一个正在特定CPU上运行进程。

3.3多任务处理系统

多任务处理系统MT编程示例如下(示例代码过长,在此不予展示):

  • type.h文件:定义了系统常数和表示进程的简单PROC结构体。
  • ts.s文件:在32位GCC汇编代码中可实现进程上下文切换。
  • queue.c文件:可实现队列和链表操作函数。
  • t.c文件:t.c文件定义MT系统数据结构、系统初始化代码和进程管理函数。

3.4进程同步

  • “并发”执行时协调各进程正确有序地执行。
  • 最简单的进程同步工具:休眠唤醒操作。

3.4.1休眠操作

  • 休眠条件:当某个进程申请资源或等待事件发生却没能得到“满足”时,该进程就会在某个事件值上进入休眠状态,,该事件值表示休眠原因。
  • 休眠操作实现:可在PROC结构体中添加一个event字段,并实现ksleep(int event)函数(当event参数满足休眠条件时,执行休眠操作)。
  • 修改后的PROC结构体如下:
  • ksleep(int event)函数算法如下:

3.4.2唤醒操作

  • 当某一个等待的时刻到来时,kwakeup()函数将被调用以唤醒等待这一时间值的所有程序,值得一提的是被唤醒的进程不会被允许立刻申请资源,而是一个一个排队等待到来的资源。
  • kwakeup()函数算法如下:

3.5进程终止

  • 正常终止:进程调用exit(value)。发出-exit(value)系统调用来执行在操作系统内核中的kexit(value)。
  • 异常终止:进程因为某个信号而异常终止。
    以上二者均会调用kexit()函数。

标签:第三章,读书笔记,休眠,进程,多任务处理,执行,PROC,CPU
From: https://www.cnblogs.com/wdys12138/p/16759704.html

相关文章

  • 【CSAPP】第三章 如何确定mov指令的后缀
    转自这里,写的真的是太好了......
  • 20201318李兴昕第三章学习笔记
    第三章:Unix/Linux进程管理知识点总结:本章讨论了Unix/Linux中的进程管理;阐述了多任务处理原则;介绍了进程概念;并以一个编程示例来说明多任务处理、上下文切换和进程处理......
  • CLIP 读书笔记
    论文:LearningTransferableVisualModelsFromNaturalLanguageSupervisionCLIP:ContrastiveLanguage-ImagePre-training文中27个数据集简介:数据集简要描述数......
  • 《数据科学家访谈录》读书笔记
    ​一、本书内容的介绍《数据科学家访谈录》是一本对当前全球最知名的25位数据科学家的深度采访,然后汇聚成册的访谈录,读者可以从中学习到这25位数据科学领域的大师的个人经历......
  • 读书笔记1
    就同我在上篇读书笔记中说的那样,这本书中的一些方法和思想,需要我们在之后的编程学习过程中一点一点的参悟和领会。比如说从我的第一次个人作业中,我对书中提到的曳光弹代码......
  • 读书笔记2
    最近阅读了《程序员的修炼之道:从小工到专家》第四章:“注重实效的偏执”,再结合上周一的期中考试,让我感触颇深。本章开始先讲述了“按合约设计”,大该讲的是与计算机打交道......
  • 第三章 知己知彼
    知彼知己,百战不殆;不知彼而知己,一胜一负;不知彼,不知己,每战必殆。《谋攻篇》前面两章其实重点是在掰扯数智化,IT研发本身的数字化其实除了DevOps这一种手段之外还有很多,比如Lo......
  • Spring Cloud:第三章:Ribbon客服端负载均衡
    负载均衡是对系统的高可用、网络压力的缓解和处理能力扩容的重要手段。理解Ribbon对于我们使用SpringCloud来讲非常的重要。它是一个基于Http和TCP的客户端负载均衡工具。......
  • nginx&http 第三章 ngx http 框架处理流程
    1.nginx 连接结构 ngx_connection_t 这个连接表示是客户端主动发起的、Nginx服务器被动接受的TCP连接,我们可以简单称其为被动连接。同时,在有些请求的处理过程中,Nginx会试......
  • 第三章练习马上就写完了
    【题目描述】抗日战争时期,我军有一个重要据点被汉奸出卖。经过密码调查,指挥部收到来自前线的一串密码,明文上显示了三个2位数。经情报员解释,每个数字代表了一个字母,即字母......