首页 > 系统相关 >Linux第3章

Linux第3章

时间:2023-10-22 21:34:57浏览次数:35  
标签:P1 系统 Unix Linux 进程 多任务处理

第三章学习笔记

Unix/Linux进程管理

多任务处理

计算机技术概念中的多任务处理指的是同时执行若干独立任务。无论是在多处理机系统还是单处理机系统都可以实现多任务处理。对于单处理机系统,多任务处理的实现依靠着多路复用技术,通过上下文的快速切换实现逻辑上的多任务并行处理。这种并行性被称为并发。

进程的概念

进程是对映像的执行。一个进程是一个对资源的动态利用的过程,系统内核通过一个独特的数据结构来表示,它被称为进程控制块PCB或任务控制块TCB。在本章中直接称之为PROC结构体。

多任务处理系统

多任务处理系统,简称MT,由以下几个部分组成。

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

进程同步

进程同步是指控制和协调进程交互以确保其正确执行所需的各项规则和机制。最简单的进程同步工具是休眠和唤醒操作。

进程终止

  • 正常终止:进程调用exit(value),发出_exit(value)系统调用来执行在操作系统内核中的kexit(value)。

  • 异常终止:进程因某个信号而异常终止。

MT系统中的进程管理

​ MT系统管理函数的一般格式:

  • 用二叉树实现的进程家族树
  • 实现 ksleep() 和 kwakeup() 进程同步函数
  • 实现 kexit() 和 kwait() 进程管理函数
  • 添加 "w" 命令来进行测试或演示操作

Unix/Linux中的进程

进程来源

  1. 当操作系统启动时,操作系统内核的启动代码会强行创建一个PID=0初始进程。
  2. 执行初始进程P0
  3. P0继续初始化系统,包括系统硬件和内核数据结构
  4. 挂载一个根文件系统,使系统可以使用文件。
  5. 在初始化系统之后,P0复刻出一个子进程P1,并把进程切换为以用户模式运行P1。

INIT和守护进程

当进程P1开始运行时,它将其执行映像更改为INIT程序。因此,P1通常被称为INIT进程,因为它的执行映像是init程序。P1 开始复刻出许多子进程。
P1的大部分子进程都是用来提供系统服务的。它们在后台运行,不与任何用户交互。这样的进程称为守护进程

登陆进程

除了守护进程之外,P1还复刻了许多LOGIN进程,每个终端上一个,用于用户登录。

sh进程

当用户成功登录时,LOGIN进程会获取用户的gid和uid,从而称为用户的进程。他将目录更改为用户的主目录并执行列出的程序,通常是命令解释程序sh。

进程的执行模式

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

I/O重定向

sh进程有三个用于终端I/O的文件流:stdin(标准输入)、stdout(标准输出)、stderr(标准错误)。

I/O重定向符号和功能说明

  • [n]<&m:将标准输入或文件描述符n重定向到文件描述符m

  • [n]<file:将标准输入或文件描述符n重定向到文件file。特别的<file将标准输入重定向到文件file

  • <file:将标准输入重定向到文件file。[n]<file 的特例

  • [n]>&m:将标准输出或文件描述符n重定向到m。特别的2>&1将标准错误重定向到标准输出

  • 2>file:将标准错误重定向到文件file(覆盖方式)

  • 2>>file:将标准错误重定向到文件file(追加方式)

  • &>或>&:同时重定向标准输出和标准错误输出

  • <<:即时文档输入符

管道

管道是用于进程交换数据的单向进程件通信通道。管道有一个读取端和一个写入端。

  • 管道命令处理
    在Unix/Linux中,命令行
    cmd1 | cmd2
    sh将通过一个进程运行cmd1,并通过另一个进程运行cmd2,他们通过一个管道连接在一起,因此cmd1的输出变为cmd2的输入。
  • 命名管道
    命名管道又叫做FIFO。
    在sh中,通过mknod命令创建一个命令管道:
    mknod mypipe p

苏格拉底挑战

Unix/Linux进程管理知识



Unix/Linux进程知识



chatgpt答疑

在Unix/Linux中,进程是如何创建的?请详细描述一下进程的创建过程。

error: ‘stderr’ undeclared (first use in this function)

8 |   fprintf(stderr,"fork failed");

代码实现



标签:P1,系统,Unix,Linux,进程,多任务处理
From: https://www.cnblogs.com/nql2/p/17781192.html

相关文章

  • Linux第三次周总结
    第四章文件权限4.1基本权限UGOU:owner,属主。G:group,属组。O:other,其他用户。Linux系统通过U、G、O将用户分为三类,并将这三类用户分别设置三种基本权限,这种设置权限的方式称作UGO方式。r:read(读取),数字设定为4。w:write(写入),数字设定为2。x:execute(执行),数字设定为1。其中,owne......
  • linux文件管理
    2.1文件目录与路径1文件目录Windows系统以多根的方式组织文件(如C:\、D:\、E:\),而Linux系统以单根的方式组织文件,如图2.1所示。 可以看到,所有的文件都在根目录(1)下,其中箭头指向真实存在的文件。例如,/bin实际存在于/usr/bin,/bin只是一个链接文件。 根目录下常见的目录/b......
  • Linux 运维培训机构避坑
    本人本科计算机专业毕业,目前在深圳做运维。经历如下:20年6月,经师兄推荐,入职了一个小公司做个棋牌后端开发,因为自己性格和技术原因(太菜了,不想拖后腿),干了9个月后离职,薪资应该是6k左右吧(记不太清,还是师兄争取后涨上去的,特别感谢他)21年5月,去成都投靠同学,投了5家左右的后端开发,虽然简......
  • 第三章Unix/Linux进程管理—学习笔记六
    〇.本章思维导图1.最近刚好操作系统也学习到进程相关部分,因此再看这些知识更易懂了2.思维导图3.本章简介本章讨论了Unix/inux中的进程管理;阐述了多任务处理原则;介绍了进程概念;并以一个编程示例来说明多任务处理、上下文切换和进程处理的各种原则和方法。多任务处理系统......
  • 无发访问文件时的处理方式(Linux)
    一:概述在访问文件系统的过程中可能会遇到无法读取、无法修改或者无法创建文件的问题。当文件系统的可用空间变少时,应用程序的运行速度会变得十分缓慢,这也会影响到我们文件的访问速度。二:处理方式<1>文件系统的可用空间用完或者文件系统损坏了处理方式如果在使用文件系统的过程中发......
  • chapter 3 Unix/Linux进程管理
    学习笔记:Unix/Linux进程管理摘要本章深入探讨Unix/Linux中的进程管理。它涵盖了多任务处理的原理和引入进程概念。使用编程示例演示了这些概念。解释了多任务处理、上下文切换以及各种与进程相关的技术。3.1多任务处理多任务处理涉及同时执行多个独立的活动。在计算中......
  • 解决Linux非root用户读写串口权限问题
    查看串口和基本设置查看串口:ls/dev/ttyUSB*查看参数:stty-F/dev/ttyUSB0设置波特率:stty-F/dev/ttyUSB0speed9600收发数据先打开后台接收:cat/dev/ttyUSB0&发送:echohello>/dev/ttyUSB0可以使用printf做更精确的控制:printf'hello\r'>/dev/ttyUSB0解决"P......
  • linux系统安装心得
    在学习Linux之前,首先需要搭建Linux系统。按照书上步骤进行VMware Worstation (威睿工作站)的安装和CentOS 7系统的安装。(1)在VMware官网下载虚拟机安装包,我下的是17的破解版,同样按步骤进行。(2)创建新的虚拟机,选择Linux操作系统centos764位版本并逐步设置,在centos官网下载......
  • Linux
      ......
  • 第七周Linux教材第三章学习笔记——Unix/Linux进程管理
    Unix/Linux进程管理3.1多任务处理在计算机技术中,多任务处理指的是同时执行几个独立的任务。多任务处理是通过在不同任务之间多路复用CPU的执行时间来实现的,即将CPU执行操作从一个任务切换到另一个任务。不同任务之间的执行切换机制称为上下文切换,将一个任务的执行环境更改为另......