一、tast_struct结构

它是一个数据结构,可以说,它代表了一个进程。它有很多字段,大体有一下几种:

标识号:进程标识、用户标识、组标识。

状态: Linux的进程的四种基本状态

调度信息:优先级、时间片等

进程链信息:父进程、子进程的指针

文件信息:打开文件、虚拟文件系统

上下文信息:进程的运行环境

二、I386体系的任务管理和调度

I386体系从硬件上支持任务间的切换。为此目的,增设了一种新段:任务状态段(TSS),首先它和数据段、代码段一样也是一种段,其次它记录了任务的状态信息。

与其它段一样,也有描述它的结构:TSS描述符表,它记录了一个TSS的信息,同时还有一个TR寄存器,它指向当前任务的TSS。任务切换的时候,cpu会将原寄存器的内容写出到相应的TSS,同时将新TSS的内容填到寄存器中,这样就实现了任务的切换。

三、Linux进程切换

Linux任务切换是通过switch_to这个宏实现的,它利用长跳指令,当长跳指令的操作数是TSS描述符的时候,就会引起CPU的任务的切换,此时,cpu将所有寄存器的状态保存到当前任务寄存器TR所指向的TSS段(当前任务的任务状态段)中,然后利用长跳指令的操作数(TSS描述符)找到新任务的TSS段,并将其中的内容填写到各个寄存器中,最后,将新任务的TSS选择符更新到TR中。这样系统就正式开始运行新切换的任务了。上面提到的task_struct中的tss成员就是记录TSS段内容的。

(责任编辑:A6)

进程在linux系统中原理,Linux系统原理知识 进程切换的概念介绍相关推荐

  1. linux进程看门狗使用方式,Linux系统中基于看门狗的精细化进程监控方法及系统的制作方法...

    Linux系统中基于看门狗的精细化进程监控方法及系统的制作方法 [技术领域] [0001] 本发明涉及Linux系统的进程监控技术领域,特别是涉及一种Linux系统中基于看 门狗的精细化进程监控方法及 ...

  2. linux如何杀死进程最快,如何在Linux系统中杀掉内存消耗最大的进程?

    作为一名博客作者,我收藏了很多博客.网站和论坛用来寻找 Linux 和 Unix 相关的内容.有时候,我在浏览器中开启了非常多的标签页,导致操作系统会无响应好几分钟.我不能移动我的鼠标,也不能杀掉一个 ...

  3. 【Android 逆向】Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

    文章目录 一.Android 逆向中使用的 android.permission 权限 二.Android 系统中的 Linux 用户权限 一.Android 逆向中使用的 android.permi ...

  4. Linux内核中的GPIO系统之(3):pin controller driver代码分析

    一.前言 对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,被它驱动的硬件叫做pin controller(一般ARM soc的datash ...

  5. linux系统中变量,Linux系统中的环境变量知识详解

    对于没有使用过linux系统的用户来说,有很多术语和功能都很陌生.本文就介绍了linux系统中的环境变量的相关知识,具体内容如下所述. linux是一个多用户的操作系统.每个用户登录系统后,都会有一个 ...

  6. window如何使用Linux命令,如何在windows系统中使用linux的命令

    在windows上可以运行或使用linux下面的命令吗?可以,学习啦学习啦小编今天就来分享怎么样让Windows支持Linux命令,做这些安装和设置后,就可以非常方便的在windows系统中使用lin ...

  7. 在一个请求分页系统中,假定系统分配给一个作业的物理块数为 3,并且此作业的页面走向为 2、3、2、1、5、2、4、5、3、2、5、2。试用 FIFO和 LRU 两种算法分别计算出程序访问过程中所发生

    页面置换算法 题目: 在一个请求分页系统中,假定系统分配给一个作业的物理块数为 3,并且此作业的页面走向为 2.3.2.1.5.2.4.5.3.2.5.2.试用 FIFO和 LRU 两种算法分别计算出 ...

  8. 苹果双系统怎么切换_Mac如何删除双系统中的windows系统

    01.需求分析 客户在使用刚买的苹果电脑,由于使用苹果系统不习惯.不顺手.导致很多买了苹果电脑的朋友,都会在苹果电脑上安装一个windows系统,所以苹果的双系统就出现了. 有些客户在使用了一段苹果系 ...

  9. QT中QDatetime中文系统中获取英文系统的结果

    QT中QDatetime中文系统中获取英文系统的结果 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 我们在中文系统下开发QT程序,如 ...

  10. 现代IM系统中的消息系统架构 - 架构篇

    前言 IM全称是『Instant Messaging』,中文名是即时通讯.在这个高度信息化的移动互联网时代,生活中IM类产品已经成为必备品,比较有名的如钉钉.微信.QQ等以IM为核心功能的产品.当然目 ...

最新文章

  1. 白色flash模块代码_适用于MCU项目的代码框架BabyOS,工程师的好助手!
  2. 【STM32】ST-LINK固件升级
  3. python文档字符串格式_Python字符串及文本模式方法详解
  4. Spring Boot快速搭建Web开发框架(Hibernate+Thymeleaf)
  5. bzoj 4033: [HAOI2015]树上染色(树形DP)
  6. c语言通讯录感想,C语言通讯录实例分享
  7. ShuffleNet 系列(1): ShuffleNet v1 理论讲解
  8. 电商的运营模式流程(最全解析电商运营模式)
  9. Python压缩文件夹
  10. 【学习笔记】软件测试-版本迭代总结
  11. 微信网页投诉php,【分享】买的thinkphp微信无投诉按钮源码
  12. Android获取年月日时分秒
  13. Android Studio Shape属性(上)
  14. 【狄克特斯拉算法验证】
  15. 基于微信小程序的小程序记账本APP源码
  16. python实现输入一个正整数_Python中实现输入一个整数的案例
  17. Netty 通过 WebSocket 编程实现服务器和客户端全双工长连接<2021SC@SDUSC>
  18. Latex 中如何使插图的位置不跑到开头而紧跟插入的文字后
  19. 记录:捕鱼达人开发笔记
  20. Storyboard

热门文章

  1. 计算机项目教学法探讨,项目教学法在计算机教学中应用计算机教学论文计算机论文...
  2. 2013蓝桥杯java试题_2013年第四届蓝桥杯javaB组 试题 答案 解析
  3. mv命令移动文件到指定目录
  4. “焖鸡”游戏中的排序问题
  5. SSM框架笔记06:初探Spring——采用XML配置方式
  6. php 记录时间 分不对,如何解决php获取的时间不对的问题
  7. 2017.9.25 Xor 失败总结
  8. 程序员表白代码python_程序员python表白代码
  9. Keras-10 【Seq2Seq示例】数字转中文大写
  10. 基于Keras的卷积神经网络(CNN)可视化