操作系统
yang_yulei
这个作者很懒,什么都没留下…
展开
-
正襟危坐说--操作系统(伍):进程间通信
进程(线程)间通信-----------关于进程间通信,以后会有专门的一个专题,故在此简单介绍。两个进程在不同的地址空间中,它们之间如何通信?1,通过main函数传入参数。传递的消息只能是文本消息(当然,你也可以把二进制消息转成文本的),传递的消息小,且不灵活。2,通过文件。这样当然可以,只是I/O操作会导致程序效率较低。为了解决我们的问题,操作系统给我们提供了一些进程间通信的机制。我原创 2013-11-18 21:58:57 · 1463 阅读 · 0 评论 -
操作系统内存管理
物理内存Linux为了有效使用机器中的物理内存,在系统初始化阶段内存被划分成几个功能区域:其中,Linux内核程序占据在物理内存的开始部分,接下来是供硬盘等块设备使用的高速缓冲区部分(其中要扣除显卡内存和ROM BIOS所占用的内存地址范围)当一个进程需要读取块设备中的数据时,系统会首先把数据读到高速缓冲区中。当有数据需要写到块设备上去时,系统也是先将数据放原创 2014-04-24 23:44:02 · 13808 阅读 · 3 评论 -
Linux 0.12 内核对内存的管理
Linux 0.12 内核对内存的管理其着重点在于分段,用分段的机制把进程间的虚拟地址分隔开。每个进程都有一张段表LDT,整个系统有一张GDT表,且整个系统只有一个总页表。 其地址翻译过程为:程序中给出的32位地址(实际上被看做段内偏移地址),再根据代码段寄存器CS中的16位段选择子,可在GDT或LDT中查找相应的段描述符。从段描述符中提取段的基地址,与程序原创 2014-04-24 23:44:19 · 3321 阅读 · 1 评论 -
CPU的实模式与保护模式(简介)
16位微处理器8086寄存器组成8086/8088包括:4个16位的数据寄存器,2个16位的指针寄存器,2个16位变址寄存器,分成四组。通用寄存器中,这些寄存器除完成规定的专门用途外,均可用于传送和暂存数据,可以保存算术逻辑运算的操作和运算结果。 段寄存器能在8086 中实现1M物理空间寻址,并可与8080 CPU进行兼容。段寄存器都是16位的,分别称为代码原创 2014-03-30 23:35:48 · 11967 阅读 · 0 评论 -
正襟危坐说--操作系统(壹):操作系统概述及历史
概述:操作系统协调各任务公平分享CPU。所谓的操作系统隐藏在各任务和中断背后,在系统运行时,并不以独立的形式存在,没有自己的执行线程。就像赛场外的裁判,只是协调整个比赛过程,而不亲自参与比赛,由运动员自己进行比赛。什么时候这个裁判才起作用呢?当系统时钟中断或系统调用时,操作系统代码才会出面协调任务的进行。而中断处理在某些方面超出了系统软件的管理范围,而由CPU硬件触发,比所有任务都优先执行。中原创 2013-11-18 21:03:50 · 1508 阅读 · 0 评论 -
正襟危坐说--操作系统(陆):进程同步
进程同步引入线程后,我们也引入了一个巨大的问题:即多线程程序的执行结果有可能是不确定的。同步就是让所有线程按照一定的规则执行,使得其正确性和效率都有迹可循。线程同步的手段就是对线程之间的穿插进行控制。 锁两个步骤(两条语句)中间留有被别的线程穿插的空挡,可能造成执行结果的错误。这时,我们可以用锁来将这两个步骤并为一个步骤,或者变成一个原子操作,使其中间不留空挡。锁有两个基本操作原创 2013-11-18 22:10:02 · 1994 阅读 · 0 评论 -
正襟危坐说--操作系统(肆):线程
线程线程就是我们为了让一个进程能够同时干多件事情而发明的“分身术”。同一进程中的每个线程在本质上是一样的,即拥有同样的程序文本,但线程执行的上下文不一致。即线程是进程里面的一个执行上下文,或者执行序列。同一个地址空间里面的所有线程就构成了进程。//线程是CPU切换的最小单位,进程是资源分配的最小单位。例如:当我们使用Word时,实际上是打开了多个线程。这些线程一个负责显示,一个接受原创 2013-11-18 21:14:49 · 1463 阅读 · 0 评论 -
正襟危坐说--操作系统(叁):进程
进程进程,即一个程序加载到内存后就变为进程。为了提高CPU利用率,人们想起将多个程序同时加载到计算机里,并发执行。这些同时存在于计算机内存的程序就称为进程。进程让每个用户感觉到自己独占CPU。因此,进程就是为了在CPU上实现多道编程而出现的概念。 进程的状态我们将进程分为三种状态:执行、阻塞、就绪。 进程创立进程创立步骤:①分配进程控制块②初始化CPU寄原创 2013-11-18 21:10:31 · 1338 阅读 · 0 评论 -
正襟危坐说--操作系统(贰):操作系统相关基本概念
操作系统相关基本概念内核态和用户态为了区分不同程序的不同权利,人们发明了内核态和用户态的概念。如果一个程序运行在特权态,则该程序就可以访问计算机的任何资源,即它的资源访问权限不受限制。如果一个程序运行在用户态,则其资源需求将受到各种限制。例如,如果要访问操作系统的内核数据结构,如进程表,则需要在特权态下才能办到。如果要访问用户程序里的数据,则在用户态下就可以了。CPU管理和内存管理都应原创 2013-11-18 21:06:26 · 1899 阅读 · 0 评论 -
Linux 2.x 内核对内存的管理
Linux 2.x 内核对内存的管理其着重点在于分页,用分页的机制把进程间的虚拟地址分隔开来。每个进程都有一套页表,整个系统有一张GDT表(此机制由逻辑地址到线性地址变换,实际上是走了个形式,变换前后地址不变)每个进程都有一套页表用于从线性地址到物理地址的映射变换。这样,每个进程都有一个4GB的逻辑空间。(两进程的逻辑地址相同,但它们有不同的页表,故最终会映射到不同的物原创 2014-04-24 23:44:31 · 4231 阅读 · 0 评论