首页 > 其他分享 >yzy第六周学习笔记

yzy第六周学习笔记

时间:2023-10-22 15:34:41浏览次数:33  
标签:yzy 笔记 第六周 任务 内核 进程 执行 PROC CPU

第六周学习笔记

多任务处理

在计算机技术中,多任务处理指的是同时执行几个独立的任务。在单处理器(单CPU)系统中,一次只能执行一个任务。多任务处理是通过在不同任务之间多路复用CPU的执行时间来实现的,即将CPU执行操作从一个任务切换到另一个任务。不同任务之间的执行切换机制称为上下文切换,将—个任务的执行环境更改为另一个任务的执行环境。如果切换速度足够快就会给人一种同时执行所有任务的错觉。这种逻辑并行性称为 “并发”。在有多个CPU或处理器内核的多处理器系统中,可在不同CPU上实时、 并行执行多项任务。

进程

定义:进程是对映像的执行。

操作系统内核将一系列执行视为使用系统资源的单一实体。系统资源包括内存空间、I/O设备以及最重要的CPU时间。在操作系统内核中,每个进程用一个独特的数据结构表示,叫作进程控制块(PCB)或任务控制块(TCB)等。在本书中,我们直接称它为PROC结构体。与包含某个人所有信息的个人记录一样,PROC结构体包含某个进程的所有信息。 在实际操作系统中,PROC结构体可能包含许多字段,而且数抵可能很庞大。在PROC结构体中,next是指向下一个PROC结构体的指针,用于在各种动态数据结构(如链表和队列)中维护PROC结构体。ksp字段是保存的堆栈指针。当某进程放弃使用 CPU时,它会将执行上下文保存在堆栈中,并将堆栈指针保存在PROC.ksp中,以便以后恢复。在PROC结构体的其他字段中,pid是标识一个进程的进程ID编号,ppid是父进程ID 编号,status是进程的当前状态,priority是进程调度优先级,kstack是进程执行时的堆栈。

多任务处理系统

(1)type.h文件:定义了系统常数和表示进程的简单PROC结构体。
(2)ts.s文件:ts.s在32位GCC汇编代码中可实现进程的上下文切换。
(3)queue.c文件:实现队列和链表操作函数。enqueue()函数按优先级将PROC输入队列中。在优先级队列中,具有相同优先级的进程按先进先出(FIFO)的顺序排序。dequeue()函数
可返回从队列或链表中删除的第一个元素。printList()函数可打印链表元素。
(4)t.c文件:定义MT系统数据结构、系统初始化代码和进程管理函数。

进程同步

一个操作系统包含许多并发进程,这些进程可以彼此交互。进程同步是指控制和协调进程交互以确保其正确执行所需的各项规则和机制。最简单的进程同步工具是休眠和唤醒操作。

睡眠模式

当某进程需要某些当前没有的东西时, 例如申请独占一个存储区域、 等待用户通过标准输人来输入字符等, 它就会在某个事件值上进入休眠状态, 该事件值表示休眠的原因。 为实现休眠操作, 我们可在 PROC 结构体中添加一个 event 字段, 并实现 ksleep(int event) 函数,使进程进人休眠状态。

唤醒操作

一个进程可能会进入休眠状态等待同一个事件,这是很自然的,因为这些进程可能都需要同一个资源,例如一台当前正处于繁忙状态的打印机。在这种情况下,所有这些进程都将休眠等待同一个事件值。当某个等待时间发生时,另一个执行实体(可能是某个进程或中断 处理程序)将会调用 kwakeup(event), 唤醒正处千休眠状态等待该事件值的所有程序。如果没有任何程序休眠等待该程序,kwakeup() 就不工作,即不执行任何操作。

进程终止

在操作系统中,进程可能终止或死亡,这是进程终止的通俗说法。

正常终止:进程调用 exit(value), 发出_exit(value) 系统调用来执行在操作系统内核中的 kexit(value)
异常终止:进程因某个信号而异常终止。

Unix/Linux中的进程

进程的执行模式

在 Unix/Linux 中, 进程以两种不同的模式执行, 即内核模式和用户模式, 简称 Kmode 和 Umode。

中断:中断是外部设备发送给 CPU 的信号,请求 CPU 服务 c 当在 Urnode 下执行时, CPU 中断是启用的因此它将响应任何中断。 在中断发生时, CPU 将进人 Kmode 来处 理中断, 
     这将导致进程进人 Kmode。
陷阱:陷阱是错误条件. 例如有效地址、 非法指令 、 除以0等, 这些错误条件被 CPU 识别为异常, 使得 CPU 进入 Kmode 来处理错误。 在 Unix/Linux 中, 内核陷阱处理程序将 
     陷阱原因转换为信号编号, 并将信号传递给进程。 对于大多数信号 . 进程的默认操作是终止。
     系统调用: 系统调用(简称 syscall) 是一种允许 Umode 进程进人 Kmode 以执行 内核函数的机制。

管道

管道是用千进程交换数据的单向进程间通信通道。管道有一个读取端和一个写入端。 可
从管道的读取端读取写人管道写入端的数据。

一.苏格拉底挑战及截图

二.问题与解决思路

三.实验过程截图

fork()函数

进程执行顺序

等待子进程终止

管道编程

标签:yzy,笔记,第六周,任务,内核,进程,执行,PROC,CPU
From: https://www.cnblogs.com/yzy3655921/p/17780437.html

相关文章

  • 第七周Linux教材第三章学习笔记——Unix/Linux进程管理
    Unix/Linux进程管理3.1多任务处理在计算机技术中,多任务处理指的是同时执行几个独立的任务。多任务处理是通过在不同任务之间多路复用CPU的执行时间来实现的,即将CPU执行操作从一个任务切换到另一个任务。不同任务之间的执行切换机制称为上下文切换,将一个任务的执行环境更改为另......
  • 2023/10/21 学习笔记
    vrrp与DHCPvrrp报文协议advertisement(心跳线)--目的ip地址224.0.0.18,目的mac地址01-00-5e-00-00-122,协议号是112.状态机:(优先级0-255) 默认0-2550代表主要退出255代表有设备和虚拟ip冲突可手动配置1-254优先级相同会比较接口地址大的优先优先级默认为10......
  • 信息安全系统设计与实现学习笔记6
    自学笔记6-重点总结1.Unix/Linux进程管理进程是对映像的执行。进程的产生是通过执行一个程序或指令,将程序加载到内存中成为一个独立的实体,并分配一个唯一的PID。子进程与父进程的关系:在bash中再调用bash时,会形成父子关系。注意要正确处理父进程生成子进程后的情况。......
  • 学习笔记6
    第3章Unix/Linux进程管理1.Unix/Linux中的进程什么是进程:进程是计算机中正在执行的程序的实例。每个进程有自己的内存空间、寄存器状态、文件描述符等信息,使其独立于其他进程。进程通常包括程序代码、数据、栈、堆以及进程控制块(ProcessControlBlock,PCB)等信息。进程状态:......
  • ABB AC900F学习笔记327:WINCC7.5SP2作为OPC SERVER,freelance2019SP2作为OPCC LIENT练习
    这一篇博客我在新浪博客记录过,地址是 ABBAC900F学习笔记327:WINCC7.5SP2作为OPCSERVER,freelance2019SP2作为OPCCLIENT练习_来自金沙江的小鱼_新浪博客(sina.com.cn)为了避免丢失,我在这里再次记录一遍今天做一个练习,WINCC7.5SP2作为OPCSERVER,freelance2019SP2作为OPCCLIENT。......
  • 学习笔记6 第三章的自学归纳
    学习笔记6第三章的自学归纳多任务处理一般来说,多任务处理指的是同时进行几项独立活动的能力。在计算机技术中,指的是同时执行几个独立的任务。多任务处理是所有操作系统的基础,总的来说,它也是并行编程的基础。进程的概念进程是对映像的执行,操作系统内核将一系列执行视为使......
  • Go笔记(2)-5种运算符总结
    运算符(1)算术运算符(2)关系运算符(3)逻辑运算符(4)位运算符(5)赋值运算符......
  • c语言初学笔记3
    这几天整理的比较慢,因为有一些是之前的东西在这里做再次批注和解释,更加详细一点intMax(intx,inty){ if(x>y) returnx; else returny;}intmain(){ intnum1=10; intnum2=20; intmax=0; max=Max(num1,num2); printf("max=%d\n",max); return0;}上来就是......
  • ABBAC900F学习笔记326:freelance2019SP1作为OPC DA SERVER,WINCC7.5SP2作为OPC DA CLIEN
    昨天练习了ABB的OPCDA通过寻,在同一台计算机上实验的。今天测试局域网上freelance2019SP1作为OPCDASERVER,WINCC7.5SP2作为OPCDACLIENT通讯。测试在昨天的ABB练习程序基础上进行。1.freelance2019SP1作为OPCDASERVER,配置DCOM,参考前面WINCC作为DASERVER的配置方法WINDO......
  • 防火墙命令学习笔记
    标准IP访问表和扩展IP访问表,区别主要是访问控制的条件不一样。标准IP访问表只是根据IP包的源地址进行标准IP防火墙标准访问控制规则格式:access-listlist-number{denylpermit}source[source-wildcard][log]而扩展IP访问控制规则的格式是:access-lis1ist-number{denylper......