linux内核——TSS】的更多相关文章

task state segment,任务状态段. 关于每个cpu对应不同TSS段的问题,如下解释: TSS段主要用在当前的任务从用户态切入内核态时去找到该任务的内核堆栈. 多核上的任务是真正的并发,每个核都可以同时运行不同的任务,所以“当前任务”的数量可能达到cpu数量这么多,所以要为每一个“当前任务”准备一个TSS.也就是有几个核就得有几个TSS. 任务切换是通过中断实现的,中断时任务处于内核态,所以任务切换时,当前任务处于内核态,当切换到新任务时,当前任务的上上文先保存在它的内核栈.当切换…
参见文章:http://blog.chinaunix.net/uid-22695386-id-272098.html linux2.4之前的内核有进程最大数的限制,受限制的原因是,每一个进程都有自已的TSS和LDT,而TSS(任务描述符)和LDT(私有描述符)必须放在GDT中,GDT最大只能存放8192个描述符,除掉系统用掉的12描述符之外,最大进程数=(8192-12)/2, 总共4090个进程.从Linux2.4以后,全部进程使用同一个TSS,准确的说是,每个CPU一个TSS,在同一个CPU…
20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这学期开始学习Linux,刚刚接触,也是不容易的坚持了下来.第一次学习这种网上课堂,形式非常的新颖,图文结合,并且孟老师教授的也很详细,一些概念也说的通俗易懂,这个课程整个学习下来还是受益匪浅. 现在整个网课的学习过程已经结束,按照孟老师的要求写一份关于Linux的总结和报告,有许多不足之处,欢迎大家指正,希望能一起…
张潇月 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 学习目录: (1)计算机是如何工作的   http://www.cnblogs.com/20135131zxy/p/5224486.html (2)操作系统是如何工作的  http://www.cnblogs.com/20135131zxy/p/5248343.html (3)Linux系统启动过程   http://www.cnblogs.com/2…
从一个比较有意思的题开始说起,最近要找工作无意间看到一个关于unix/linux中fork()的面试题: #include<sys/types.h> #include<stdio.h> #include<unistd.h> int main(void) { int i; ]={,,,,,,,,}; ;i<;i++) { fork(); printf("+"); //write("/home/pi/code/test_fork/test…
都说这个主题不错,连我自己都觉得有点过大了,不过我想我还是得坚持下去,努力在有限的时间里学习到Linux内核的奥秘,也希望大家多指点,让我更有进步.今天讲的全是进程,这点在大二的时候就困惑了我,结果那个时候我就止步不前了,这里主要讲的是为何引入进程.进程在Linux空间是如何实现的,并且描述了所有与进程执行相关的数据结构,最后还会讲到异常和中断等异步执行流程,它们是如何和Linux内核进行交互的,下面我就来具体介绍一下进程的奥妙. 首先我们要明确一个概念,我们说的程序是指由一组函数组成的可执行文…
在讲述专业知识前,先讲讲我学习linux内核使用的入门书籍:<深入理解linux内核>第三版(英文原版叫<Understanding the Linux Kernel>),不过这本书不一定对每个人都适合,大家可以根据自己的情况选择适合的入门书籍.看了前面几章,感觉这本书的语言极其精练,没有一句多余的,必须慢慢读.可能我以前习惯了粗略浏览的阅读方式,读这本书时经常看着看着就迷糊了,不得不回到前面重新读起,如此反反复复.关于进程的一章更是深奥难懂,前前后后翻了十几遍才明白个大概.另外说…
原文:十天学Linux内核之第二天---进程 都说这个主题不错,连我自己都觉得有点过大了,不过我想我还是得坚持下去,努力在有限的时间里学习到Linux内核的奥秘,也希望大家多指点,让我更有进步.今天讲的全是进程,这点在大二的时候就困惑了我,结果那个时候我就止步不前了,这里主要讲的是为何引入进程.进程在Linux空间是如何实现的,并且描述了所有与进程执行相关的数据结构,最后还会讲到异常和中断等异步执行流程,它们是如何和Linux内核进行交互的,下面我就来具体介绍一下进程的奥妙. 首先我们要明确一个…
本章的作业依旧包括两部分,1.阅读学习教材「Linux内核设计与实现 (Linux Kernel Development)」第教材第11,12章. 2.学习MOOC「Linux内核分析」第六讲「进程的执行和进程的切换」,并完成实验楼上配套实验六. 在本次试验中,我们首先新建了一个hello.c的文件,并在里面编辑简单的输出hello world的代码. 调用命令gcc -E -o hello.cpp hello.c -m32编辑出预处理的中间文件hello.cpp.预处理负责把include的文…
实验作业:进程调度时机跟踪分析进程调度与进程切换的过程 20135313吴子怡.北京电子科技学院 [第一部分]理解Linux系统中进程调度的时机 1.Linux的调度程序是一个叫schedule()的函数,这个函数被调用的频率很高,由它来决定是否要进行进程的切换,如果要切换的话,切换到哪个进程等等. 2.Linux调度时机主要有: 中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule() 内…