![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
哈工大操作系统
文章平均质量分 71
littleflypig
这个作者很懒,什么都没留下…
展开
-
操作系统基础之启动
1.冯诺依曼结构取指执行,取IP指向的地址的指令,然后执行。 2.打开电源后计算机如何执行对于x86cpu,一开机cpu处于实模式,CS和IP指针自动赋值,寻址CS<<4加IP,正好是ROM BIOS的映射区(0xFFFF0),BIOS中固化了一段代码,执行检查等操作,然后将磁盘0磁道0扇区(即引导扇区512字节,内含有操作系统引导程序)读入0x7c00处,并设置CS...原创 2018-03-07 21:28:44 · 262 阅读 · 0 评论 -
ubuntu安装gcc3.4
摘要: ubuntu10.10默认安装的是4.4版本的编译器,现在我们要安装3.4的编译器,可是为什么要安装比默认版本要低的编译器呢,主要是因为要编译 x86-qtopia,4.4版本的编译器对语法要求很高,导致编译qtopia源码时有很多的错误,当然你也可以通过修改源码来完成编译,但还有一个比 较偷懒的做法,那就是使用3.4编译器。 介绍: 下面开始吧: 1、sudo apt-g...转载 2018-03-16 17:15:01 · 6276 阅读 · 2 评论 -
操作系统基础之系统调用
1.用户态和内核态用户程序是如何调用内核程序的呢?考虑实现下面的一个whoami的系统调用: 在内核中100地址处有一个用户“lizhijun”,whoami函数的功能是要打印出这个用户名,那可以直接打印出100地址处的内容吗?答案当然是否定的,因为用户程序不能随意的访问内核程序,内核态可以访问任何数据,用户态却不能访问内核数据,这是一种处理器的硬件设计所决定的,如下图: 判断一段...原创 2018-03-13 21:21:58 · 499 阅读 · 0 评论 -
操作系统之多进程图象
一、管理CPU如何管理cpu,最直观一种方法就是设置好PC指针,然后一句一句取指执行,但这样会不会存在问题,当然会,当执行到磁盘读写指令时,cpu会一直处于等待状态,其他程序此时无法利用cpu,因此会浪费大量cpu资源。如何解决这个问题呢,可以启动多个程序,当一个程序处于等待状态时,cpu转而运行其他程序: 但这样就行了吗,如果在想切回到原先的程序,肯定要保存原先程序运行时的状态,然后返...原创 2018-04-08 13:00:31 · 587 阅读 · 0 评论 -
操作系统之用户级线程
一、进程和线程进程与线程的关系可以以下面这张图表示: 实质就是映射表不变而PC指针变。二、线程的应用考虑一个网页浏览器的例子,一个网页浏览器可能需要好几个线程,比如一个线程用来接收数据,一个线程用来显示文本,一个线程用来处理图片等等,而这些线程需要共享资源: 这个浏览器实现首先需要creat一些线程,然后再调用getdata、show等线程,因此要想实现此浏览器核心就是如何...原创 2018-04-08 14:17:27 · 1027 阅读 · 0 评论 -
操作系统之核心级线程
一、多核支持因为有核心级线程,才可能对支持多核,核心级线程跑在不同的cpu上,但是地址映射(MMU)是同一个。 二、核心级线程核心级线程相比于用户级线程从一个栈变成了一套栈,即多了内核栈,内核管理TCB,TCB关联到了内核栈,那用户栈该怎么办?用户栈关联到了内核栈。用户栈和内核栈之间的关联程序开始执行在用户态,当遇到中断时,切换到内核态执行,假如用户程序调用INT指令,硬件自...原创 2018-04-08 16:36:31 · 937 阅读 · 0 评论