操作系统
mayifan_blog
湖南大学,电气自动化,自学互联网
展开
-
操作系统之存储管理
文件系统内存分配方法和空闲空间管理:1、连续分配:在这种内存分配方式下,空间是连续分配的,是一种线性序列,即数据支持直接读取和顺序读取。这种方式的优点是访问很快,但是当存在数据的删除操作时,会导致数据的碎片化,一些空闲的小空间就不能得到充分利用。有一种解决方法是复制算法,把数据复制到了一个软盘,令有效空间连续,那么就可以得到连续的空闲空间了,但是这种方式会导致停机或是一些时间成本。2、链接分...原创 2019-07-03 23:57:29 · 505 阅读 · 0 评论 -
操作系统基本概念及其调度特点
对操作系统的理解了解操作系统首先需要知道它处于计算机中的一个什么样的地位,在哪一个层次。底层是硬件,与硬件相关联的是寄存器和IO之类的管脚,硬件可以接受外部的操作形成“中断”信号,这个信号统一传输到操作系统内核与硬件相关联的接口处,然后内核会判断选择哪个系统调用,通过内核和应用层的接口进行转义,决定调用应用层的哪个方法,最终实现和用户的交互。应用软件中的某个操作也同样可以反向影响到硬件设备的运行...原创 2019-06-28 17:38:45 · 755 阅读 · 0 评论 -
操作系统之内存管理
内存管理调度之交换:操作系统每一个进程都会分配有独立的内存空间,如果进程很多,内存空间不够使用怎么办?需要把部分内存转移到磁盘中保存,当需要再次使用它的时候再把它从其中取出,把不用的部分“交换”进去,这就是交换的简单原理。通过交换,我们可以保存更多的内存信息,同时避免了内存不足。但它也存在一些问题,比如交换的过程中会带来一定的开销,如果一个进程的使用时间短于它交换到内存的时间,这样效率是很低的...原创 2019-06-30 08:30:17 · 188 阅读 · 0 评论 -
C语言程序从源文件到可执行文件的过程以及从键盘按下字符到它出现在显示器的过程
一段C语言程序从源文件到可执行文件的中间环节预处理:宏定义指令:对用到宏定义的地方用其指代的具体内容进行替换。条件编译指令:对类似于#ifdef,#ifndef,#else,#elif,#endif的条件编译指令,跳过在条件判断中不需要编译的部分,把不必要的代码过滤。头文件包含指令:预编译程序将把头文件中的定义都加入到它所产生的输出文件中,以供编译程序对之进行处理。在这个操作后文件的行数...原创 2019-08-05 23:16:19 · 458 阅读 · 0 评论 -
共享内存和管道的C语言实现
共享内存C语言APIint shmget(key_t key, int size, int shmflg),开辟或使用一块共享内存。void *shmat(int shmid, const void *shmaddr, int shmflg), 将参数shmid所指向的共享内存与当前进程连接。当使用某共享内存时,需要先使用shmat,达成连接。int shmdt(const void *sh...原创 2019-08-24 18:40:47 · 3105 阅读 · 0 评论 -
操作系统内存分配算法
位图算法概念: 这种位图即二维数组,通过二维数组来保存内存的使用情况,每个位的值代表这个块的使用情况,0为空闲,1为被占用。优点: 查找快;对于内存的管理比较清晰可见。缺点: 需要通过遍历的方式才能知道哪些内存是可以使用的,并且这种内存分配方式不能避免内存碎片的问题。链式算法概念: 这种分配算法通过链表来保存和维护块的使用信息,它包括多个单元,每个单元是一个连续的数组,数组的第一位用来表...原创 2019-08-22 16:12:47 · 2164 阅读 · 0 评论