操作系统
文章平均质量分 83
fzjcycp
这个作者很懒,什么都没留下…
展开
-
操作系统--虚拟存储器
9.虚拟存储器为了更加有效地管理存储器且少出错,现代系统提供了对主存的抽象概念,叫做虚拟存储器(VM)。虚拟存储器是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完美交互。为每个进程提供一个大的,一致的和 私有的地址空间。提供了3个重要能力。将主存看成磁盘地址空间的高速缓存。 只保留了活动区域,并根据需要在磁盘和主存间来回传送数据,高效使用主存。转载 2016-08-04 10:10:35 · 1549 阅读 · 0 评论 -
dentry与inode、dentry_cache
一、dentry的定义 dentry的中文名称是目录项,是Linux文件系统中某个索引节点(inode)的链接。这个索引节点可以是文件,也可以是目录。 二、dentry的结构:以下是dentry的结构体 struct dentry { atomic_t d_count; 目录项对象使用计数器 unsigned int d_flags; 目录项标志 struct转载 2016-12-05 10:21:56 · 664 阅读 · 0 评论 -
linux 文件描述符表 打开文件表 inode vnode
在Linux中,进程是通过文件描述符(file descriptors,简称fd)而不是文件名来访问文件的,文件描述符实际上是一个整数。Linux中规定每个进程能最多能同时使用NR_OPEN个文件描述符,这个值在fs.h中定义,为1024*1024(2.0版中仅定义为256)。每个文件都有一个32位的数字来表示下一个读写的字节位置,这个数字叫做文件位置。每次打开一个文件,除非明确要求,转载 2016-12-04 21:28:56 · 548 阅读 · 0 评论 -
文件描述符、文件描述符表、打开文件表、目录项、索引节点之间的联系
文件描述符、文件描述符表、打开文件表、目录项、索引节点之间的联系如下图所示: 每个进程在PCB(Process Control Block)中都保存着一份文件描述符表,文件描述符就是这个表的索引,每个表项都有一个指向已打开文件的指针,已打开的文件在内核中用file结构体表示,文件描述符表中的指针指向file结构体。 在file结构体中维护File Status转载 2016-12-04 20:10:51 · 6550 阅读 · 1 评论 -
CPU地址空间,IO端口和IO内存
1)物理地址:CPU地址总线传来的地址,由硬件 电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上(如显存、BIOS等)。在程序指令中的虚拟地址经过段映 射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。 物理地址空间,一部分给物理RAM(内存)用,一部分给总线用,这是由硬件设计来决定的,因此在32 bits地址线的x8转载 2016-12-11 16:23:59 · 6039 阅读 · 0 评论 -
以太网协议以及常用帧格式
为了以后找到更方便,先保存这个链接http://blog.sina.com.cn/s/blog_603e4a3c0101mh4q.html转载 2016-11-28 22:45:06 · 708 阅读 · 1 评论 -
什么是ARP,它有什么作用
ARP协议 Address Resolution Protocol 地址解析协议 在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧转载 2016-11-28 22:43:03 · 14350 阅读 · 0 评论 -
PV原语
在计算机操作系统中,PV操作是进程管理中的难点。首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S³0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1;原创 2016-09-12 19:52:16 · 1106 阅读 · 0 评论 -
操作系统中的信号量(sema)与互斥(mutex)
信号量:那是多线程同步用的,一个线程完成了某一个动作就通过信号告诉别的线程,别的线程再进行某些动作。互斥量:这是多线程互斥用的,比如说,一个线程占用了某一个资源,那么别的线程就无法访问,知道这个线程离开,其他的线程才开始可以利用这个资源。 信号量与普通整型变量的区别:信号量(semaphore)是非负整型变量,除了初始化之外,它只能通过两个标准原子操作:wait(s原创 2016-08-28 15:37:45 · 10414 阅读 · 0 评论 -
MMU配置
在中断配置时 有一个函数 MMU_Init() 这个是MMU的初始化函数,用来初始化存储器管理单元的 (Memory Manage Unit )。那这个单元是来干嘛的呢,顾名思义,用来管理存储器的。 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以 内存容量虽然小,但还是可以容纳当时的程序。但催着转载 2016-08-04 15:01:56 · 2515 阅读 · 0 评论 -
Linux内核——伙伴系统跟slab缓存
Linux内核——伙伴系统和slab缓存 伙伴系统 使用场景:内核中很多时候要求分配连续页,为快速检测内存中的连续区域,内核采用了一种技术:伙伴系统。 原理:系统中的空闲内存总是两两分组,每组中的两个内存块称作伙伴。伙伴的分配可以是彼此独立的。但如果两个小伙伴都是空闲的,内核将其合并为一个更大的内存块,作为下一层次上某个内存块的伙伴。如下图给出了一对伙伴,转载 2016-12-07 10:06:53 · 738 阅读 · 0 评论