首页 > 其他分享 >学习笔记6

学习笔记6

时间:2023-10-21 15:35:03浏览次数:24  
标签:文件 笔记 Kmode 学习 管道 Linux 进程 CPU

第 3 章 Unix/Linux进程管理

一、知识点归纳

多任务处理

  • 同时进行几项独立活动的能力
  • 通过在不同任务之间多路复用CPU的执行时间来实现,即将CPU执行操作从一个任务切换到另一个任务
  • “并发”
  • 所有操作系统的基础
  • 并行编程的基础

进程的概念

  • 进程是对映像的执行。
  • PROC结构体

Unix/Linux中的进程

  1. 进程来源
  2. INIT和守护进程
  3. 登录进程
    • 文件流
    • FILE结构体
  4. sh进程
  5. 进程的执行模式
    1. 内核模式(kmode)
      • 每个进程都在Kmode下产生并开始运行
      • 在Kmode下,进程的Kcode、Kdata和Kheap都相同
      • 通过将CPU的状态寄存器从K模式更改为U模式,可轻松切换到Umode
    2. 用户模式(Umode)
      • 进程在Umode下的映像都不相同
      • 只能通过三种方式进入Kmode:
        1. 中断
        2. 陷阱
        3. 系统调用

进程管理的系统调用

  1. fork()
    • 创建子进程并返回子进程的pid,如果失败则返回-1
    • kfork()
      • 内核中相应的函数
      • 允许子进程继承父进程打开的所有文件
  2. 进程执行顺序
    在fork()完成后,子进程与父进程和系统中所有其他进程竞争CPU运行时间。接下来,运行哪个程序取决于它们的调度优先级,优先级呈动态变化。
  3. 进程终止
    • 正常终止
    • 异常终止
  4. 等待子进程终止
  5. Linux中的subreaper进程
  6. exec():更改进程执行映像
  7. 环境变量
    • 为当前sh定义的变量,由子sh或进程继承
    • 可使用env或printenv命令查看环境变量
    • 一些重要的环境变量:
      • SHELL
      • TERM
      • USER
      • PATH
      • HOME

I/O重定向

  1. 文件流和文件描述符
    • 每个文件流对应Linux内核中的一个打开文件
    • 每个打开文件都用一个文件描述符(数字)表示
  2. 文件流I/O和系统调用
  3. 重定向标准输入
  4. 重定向标准输出

管道

  • 管道是用于进程交换数据的单向进程间的通信通道
  • 双向管道上,数据可以双向传输
  • 普通管道用于相关进程
  • 命名管道是不相关进程之间的FIFO通信通道
  1. Unix/Linux中的管道编程
  2. 管道命令处理
  3. 将管道写进程与管道读进程连接起来
  4. 命名管道(FIFO)

二、ChatGPT

image
image

标签:文件,笔记,Kmode,学习,管道,Linux,进程,CPU
From: https://www.cnblogs.com/Vicky-Peng/p/17779048.html

相关文章

  • 《Unix/Linux系统编程》教材学习笔记第三章
    chapter3多任务处理一般来说,多任务处理指的是同时进行几项独立活动的能力。在计算机技术中,多任务处理指的是同时执行几个独立的任务。在单处理器(单CPU)系统中,一次只能执行一个任务。多任务处理是通过在不同任务之间多路复用CPU的执行时间来实现的,即将CPU执行操作从一个任务切换到......
  • 开发笔记
    开发笔记环境配置类0.杂项配置M1Mac的python环境:M1miniconda,需要用哪些包先去https://anaconda.org/查询是否只是M1芯片,不支持的貌似安装不了(比如pygame)直接用Pycharm的新建环境,不过不知道下载的是M1版本的还是通过Rosetta转译的。关于jupyternotebook:在base环境......
  • 捡起ctf学习 day1 Linux Labs
    1.把忘记密码的kali重置了密码进入GRUB启动程序,修改命令,重置密码(参考https://www.cnblogs.com/wh0915/p/17153270.html) 2.做题,ssh连接命令ssh-p端口用户名@网址然后输入密码即可连接 cd命令:切换当前目录百至其它目录,比如进入/etc目录,则执行cd/etccd/:在Linux系......
  • 学习笔记6
    知识点归纳多任务处理系统多任务处理系统是一种计算机操作系统,可以同时执行多个任务或进程,从而提高计算机的效率和吞吐量。它允许用户在一个系统中运行多个程序,并且这些程序可以并行执行,互不干扰。多任务处理系统有两种类型:协作型和抢占式。在协作型系统中,多个任务共享CPU的时......
  • 2023-2024-1 20231317《计算机基础与程序设计》第四周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础与程序设计第四周作业)这个作业的目标<《C语言程序设计第三章》>作业正文...本博客链接https://www.cnblogs.com/......
  • 2023-2024-1 20231404高伟光 《计算机基础与程序设计》第四周学习总结
    作业信息所属班级计算机基础与程序设计作业要求要求作业目标学习并总结课本,通过测试作业正文本博客教材学习内容总结1.学习了门与电路的相关知识,了解了相关运算与图解2.知道大多计算机为冯-诺伊曼体系3.学习了强转,了解计算机赋值逻辑和晕算符号教材学......
  • TCL脚本语言学习
    前言  TCL(ToolCommandLanguage)命令的格式是命令+字符串,第一个是命令,后面都是字符串,tcl的解释器(逐行执行)会根据命令去对后面的字符串进行相关操作。注释符号:#一、安装启动tcl命令行,以%开头sudoaptinstalltcl//安装tcltclsh//启动tcl%二、变量列表1、置换subtitutio......
  • Unix/Linux系统编程自学笔记-第三章:Unix/Linux进程管理
    Unix/Linux系统编程自学笔记-第三章:Unix/Linux进程管理1、概念介绍多任务处理计算机技术概念中的多任务处理指的是同时执行若干独立任务。无论是在多处理机系统还是单处理机系统都可以实现多任务处理。对于单处理机系统,多任务处理的实现依靠着多路复用技术,通过上下文的快速......
  • MySQL学习(7)连接的原理
    什么是连接连接就是把各个表中的记录都取出来进行依次匹配。若无过滤条件,连接查询的结果集中包含一个表中的每一条记录与另一个表中的每一条记录相互匹配的组合,这样的结果集称为笛卡尔积。测试数据:CREATETABLEt1(m1INT,n1char(1));CREATETABLEt2(m2INT,n2char(1));......
  • cpp笔记
    cpp笔记请见:​ 序言现代C++教程:高速上手C++11/14/17/20-ModernC++Tutorial:C++11/14/17/20OntheFly(changkun.de)1.指针常量和常量指针1.指针常量:不能修改指针所指向的地址。定义同时必须初始化。inta=10;int*constp=&a; //指针常量*p=1; //正......