linux系统ll历史,Linux操作系统原理笔记
在Linux操作系统内核内部,进程是通过一个链表,而且是一个双向链表来管理的。
进程描述符:每一个进程都有其描述符,每一个描述符彼此之间都有关联性的。
双向链表:
一个进程内部可能包含多个线程。
上下文切换(Context swtch)
假如说进程A从当前CPU上被拿走,切换成进程B,进程A有自己的描述符(task_struct),且被挂起。被Suspend(栈指针),CPU内部,包括指令计数器等保存下来。
保存在进程描述符文件当中。而进程描述符是由内核维持。所以这些信息都保存在内核中。
当A进程被切换出去,就意味着B进程被调度上来。这一过程被叫做恢复线程(Resume)
总的过程就叫做上下文切换。
进程A------CPU------进程B
上下文切换由谁完成?----由内核。
这意味着:
每一次进程切换都要先从用户空间转到内核模式,然后再到用户模式。
注意:不可能由一个进程到另一个进程,必须由内核来指挥完成。
所以CPU的整体时间就分为两部分:
一部分是用户空间所有进程加起来的计的时间
另一部分是内核空间所占用的时间
不管是那个进程,CPU总是分配到用户空间一部分,又分配到内核空间一部分。
Linux支持进程抢占。
优先级高的可以抢占优先级低的。
但不是随时都可以抢占,-------系统时钟。
系统时钟:
有内部的时间频率。
Tick:滴答----时间解析度
操作系统是怎么记录时间的?
每一次滴答(tick),都会产生可抢的时钟中断。
滴答来了,就可以抢了。
Linux的进程类别:
1、交互式进程(IO密集型):等待IO,对CPU要求量特别小。
2、批处理进程(CPU密集型):也可以理解成守护进程。
3、实时进程(Real-time):随时运行,优先级非常高的进程
对于PC(桌面):交互式进程优先级应该是高优先级的,IO,,,,,
对于服务器来说:一般以批处理为主(CPU)
现在很多调度器可以这样来实现:
让批处理进程多一些时间片。----时间片比较大,但优先级低。
而交互式进程时间片少,但优先级高。
调度就是按照优先级来完成的。
Top命令是用来显示系统运行的进程信息。
Linux优先级:
1、实时进程优先级:1-99 数字越小,优先级越低。通常与内核相关。
2、静态优先级:通常用来描述用户进程优先级。
100-139 数字越小,优先级越高。
所以优先级范围是1-139
实时优先级比静态优先级高。
很显然,内核进程通常都是实时优先级。
TOP
显示RT的为实时进程。
linux系统ll历史,Linux操作系统原理笔记相关推荐
- linux系统基本命令实验原理,《操作系统原理与Linux》实验一 Linux基本命令.doc
<操作系统原理与Linux>实验报告 实验名称:实验一 Linux基本命令的使用 实验日期: 2011年11月1日 班 级:B09513 学 号:20094051311 姓 名:王晓珍 计 ...
- (转)Windows系统、Linux系统 和 Mac OS操作系统 历史由来 与 区别?
目录 1 UNIX 由来 2 Linux 由来 3 Windows与Linux的主要区别 4 关于Linux的一些疑惑 参考资料 目前常见的三大操作系统:Windows系统.Linux系统 和 Mac ...
- Linux系统的历史发展演绎
回顾:Linux系统的历史发展演绎 作者:mary 来源:settingyin 发布时间:2006.09.06 本章讲述linux发展历程及基本概况.即使你对linux一无所知,学完本章,也会发现此时 ...
- 深度实践嵌入式linux系,深度实践嵌入式Linux系统移植 完整pdf_操作系统教程_源雷技术空间...
资源名称:深度实践嵌入式Linux系统移植 完整pdf 第1章嵌入式系统架构与移植环境搭建2 第2章u-boot工程与编译系统14 第3章u-boot启动流程分析41 第4章ARM9/S3C2440 ...
- linux系统的笔记本,Linux:开源的免费操作系统_笔记本电脑_笔记本评测-中关村在线...
■linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议 ...
- 在Linux系统下安装更换操作系统
我的当前的系统是Linux(版本centos6.5),之前是通过软通牒(UltraISO)在Windows系统下制作了这个Linux系统的U盘启动盘,然而在Linux系统下通过系统本身集成的dd命令, ...
- Linux系统之部署Linux管理面板1Panel
Linux系统之部署Linux管理面板1Panel 一.1Panel介绍 1.1Panel简介 2.1Panel特点 二.本地环境规划 1.本此实践目的 2.本地环境规划 三.检查本地环境 1.检查操 ...
- 连接linux系统的mysql,Linux系统MySQL开启远程连接
1.远程连接上Linux系统,确保Linux系统已经安装上了MySQL数据库.登陆数据库.mysql -uroot -p(密码). 2.创建用户用来远程连接 GRANT ALL PRIVILEGES ...
- imx6ull移植Linux系统第二篇——Linux内核的移植
imx6ull移植Linux系统第二篇--Linux内核的移植 花了大概两周的时间,把Linux的移植认真学了一遍,期间踩了不少坑,花费了不少时间去解决各种奇奇怪怪的问题,最终完成了uboot.系统镜 ...
最新文章
- 使用渲染纹理的制作摄像头
- 陶瓷气体放电管型号大全
- java中如何getchar_是否有与getchar等效的Java?
- java spring 拦截器_Spring MVC拦截器(Interceptor)的配置及使用
- B - Ada and Queue
- webview跟html通信的原理,1.iOS: webView与html的交互
- 分布式配置中心之 —— nacos使用详解
- ElasticSearch启动报错,报ERROR: [3] bootstrap checks failed
- PHPWAMP开启SSL,PHPWAMP配置ssl证书
- win10 mysql 卸载不干净,安装提示,The service already exists
- 50个最新漂亮的国外网站模板下载
- 关于 C++ 打印 PDF 打印及 PDF 转图片、合并
- 情话说不出?教你用Python做个表白程序,女神:饭在锅里,人在..
- 本科操作系统学习笔记(上篇)
- 服务器域名绑定公网IP地址
- KubeSphere DevOps流水线部署
- 常用网络命令之ipconfig和ping的使用
- 嵌入式课程设计 —— STM32 定时器编程
- Python识别垃圾邮件
- Ordinal number(序数词表示)
热门文章
- 在JShell中尝试Java9 HTTP客户端和Process API
- java程序中用户名和密码_在Java应用程序中使用密码术
- SpringBoot AutoConfiguration魔术如何工作?
- java 过滤xss脚本_Java Web应用程序的反跨站点脚本(XSS)过滤器
- threadlocal_了解ThreadLocal背后的概念
- 带有ActiveMQ和Maven的JMS Sender应用程序
- 一时冲动:“通往瓦尔哈拉之路的冒险”
- 内存不足:杀死进程或牺牲孩子
- 仔细研究Java Identity API
- 通过基于JDBC的用户存储部署Identity Server