
操作系统
文章平均质量分 72
chudongfang2015
开心开心!!!!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
栈帧
首先应该明白,栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(地址地)。下图为典型的存取器安排,观察栈在其中的位置 入栈操作:push eax; 等价于 esp=esp-4,eax->[esp];如下图出栈操作:pop eax; 等价于 [e转载 2016-04-29 14:17:37 · 388 阅读 · 0 评论 -
操作系统总结 存储器管理
操作系统总结 存储器管理存储器的层次结构CPU寄存器 寄存器主存 高速缓存 主存 磁盘缓存辅存 磁盘 可移动介质CPU寄存器和主存属于操作系统存储管理,掉电后其信息不再存在辅存属于设备管理,存储的信息被长期保存主存储器和寄存器主存储器 用于保存进程运行时的程序和数据,也称为可执行存储器寄存器 寄存器的访问速度最快,完全能与CPU协调工作,但价格却十分昂贵。高速缓存和磁盘原创 2017-06-28 15:36:49 · 996 阅读 · 0 评论 -
操作系统总结 处理机调度与死锁
操作系统 处理机调度与死锁处理机调度1、高级调度作业与作业步作业控制块作业调度2、低级调度低级调度也称为进程调度、短程调度,它所调度的对象为进程 低级调度用于决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。功能保存处理机的现场信息按某种算法选取进程把处理机分配给进程三个基本机制排队器分派器上下文切换机制进程调度方式非抢占式抢占式原创 2017-06-26 23:35:53 · 1132 阅读 · 0 评论 -
操作系统总结 设备管理
I/O系统I/O设备I/O设备的类型 按设备的使用特性分类:存储设备、输入/输出设备按传输速率分类:低速、中速、高速设备按信息交换的单位分类:块设备、字符设备按设备的共享属性分类:独占设备、共享设备、虚拟设备设备与控制器的接口数据信号线控制信号线状态信号线设备控制器设备控制器是计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。它是计原创 2017-06-29 23:15:14 · 1875 阅读 · 0 评论 -
C语言的内存对齐机制
from:http://blog.youkuaiyun.com/21aspnet/article/details/6729724文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址转载 2016-05-03 22:35:15 · 2401 阅读 · 0 评论 -
main()是程序运行的第一个函数吗?
from:http://m.blog.youkuaiyun.com/article/details?id=7883614 程序运行到main()函数之前,CPU做了那些事情?main()是程序运行的第一个函数吗? 在早期的计算机中,由于所有程序在运行时所访问的地址都是物理地址,所以各个程序所使用的地址空间不是 互相隔离的,如果因为“Bug”不小心改写了其它程序的数转载 2016-05-03 21:05:48 · 1344 阅读 · 0 评论 -
大端法还是小端法区别
第一部分 基本概念首先不管是大端法还是小端法存储,计算机在内存中存放数据的顺序都是从低地址到高地址,所不同的是首先取低字节的数据存放在低地址还是取高字节数据存放在低地址。若首先取高字节的数据存放在低地址,则是大端法;若首先取低字节的数据存放在低地址,则是小端法; 例如有数据0x01234567 (注意:左边是高字节,右边是低字节)大端法存放:存放的地址依次为:0x000转载 2016-05-03 16:03:01 · 3216 阅读 · 0 评论 -
./configure,make,make install的作用
1、configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/l转载 2016-05-02 22:02:37 · 439 阅读 · 0 评论 -
编译器的工作过程
编译器的工作过程作者: 阮一峰日期: 2014年11月11日源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include stdio.h>int main(void){ fputs("Hello, world!\n", stdout);转载 2016-05-02 21:49:09 · 579 阅读 · 0 评论 -
分析linux内存管理机制
分析linux内存管理机制,离不了上述几个概念,在介绍上述几个概念之前,先从《深入理解linux内核》这本书中摘抄几段关于上述名词的解释:一、《深入理解linux内核》的解释逻辑地址(Logical Address) 包含在机器语言指令中用来指定一个操作数或一条指令的地址(有点深奥)。这种寻址方式在80x86著名的分段结构中表现得尤为具体,它促使windows转载 2016-05-02 17:50:57 · 499 阅读 · 0 评论 -
32位和64位操作系统的区别
作者:归灵链接:https://www.zhihu.com/question/23408154/answer/24576669来源:知乎。------1.32bCPU和64bCPU的区别?首先二者的指令集合、操作数位数、寄存器名称和个数等等都不相同;比如一条mov eax,1指令,可能在32bCPU上对应的机器指令是0x1201;在64位机器上就是0x123401。程序转载 2016-05-01 23:17:09 · 1763 阅读 · 0 评论 -
64 bit Linux下程序开发注意事项
64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂);可以访问大型数据库。本文介绍的是64位下C语言开发程序注意事项。1 32 位和 64 位C数据类型32和64位C语言内置数据类型,如下表所示。上表中第一行的大写字母和数字含义如下所示:I表示:int类型L表示:long类型P表示:pointer指针类型转载 2016-05-01 23:12:13 · 464 阅读 · 0 评论 -
linux下如何实现全局跳转
C语言中的goto语句只能实现函数中的局部跳转,并不能实现全局跳转查阅LinuxC 以后,简介如何实现及运用全局跳转(不同函数中的跳转)Linux 下的全局跳转的实现及其原理:原创 2016-04-29 18:20:41 · 1074 阅读 · 0 评论 -
内存管理算法--Buddy伙伴算法
buddy system简介:buddy system内存管理,努力让内存分配与相邻内存合并能快速进行(对于普通算法来讲,合并内存相当困难),它利用的是计算机擅长处理2的幂运算。我们创建一系列空闲块列表,每一种都是2的倍数。举个例子,如果最小分配单元是8字节,整个内存空间有1M。我们创建8字节内存块链表,16字节内存块链表,32字节内存块链表,64,128,256,512,1k,2K,...转载 2018-03-03 22:58:13 · 1938 阅读 · 0 评论