- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 深入理解Linux内核day10--信号
信号 信号在最早的Unix系统中即被引用,用于在用户态进程间通信。内核也用信号通知进程系统所发生的事件。信号已有30多年的历史,但只有很小的变化。 信号的作用 信号(signal)是很短的消息,可以被发送到一个进程或一组进程。发送给进程的唯一信息通常是一个数,以此来标识信号。在标准信号中,对参数、信息或者其他相随的信息没有给与关注。 名字前缀为SIG的一
2016-05-05 18:04:12 1425
原创 深入理解Linux内核day09--系统调用
系统调用 操作系统为在用户态运行的进程与硬件设备(如CPU、磁盘、打印机等等)进行交互提供了一组接口。 Unix系统通过向内核发出系统调用(system call)实现用户态进程和硬件设备之间的大部分接口。 POSIX API和系统调用 让我们先强调下应用编程接口(API)与系统调用之间的不同。前者只是一个函数定义,说明了如何获得一个给定的服务;而后者是
2016-05-05 14:13:10 1703
原创 深入理解Linux内核day08--进程线性地址空间
进程地址空间 内核中的函数以相当直截了当的方式获得动态内存: 1.__get_free_pages()和alloc_pages()从分区页框分配器中获得页框。 2.kmem_cache_alloc()和kmalloc()使用slab分配器为专门或通用对象分配快。 3.vmalloc()和vmalloc_32()获得一块非连续的内存区。
2016-05-05 10:45:31 2989
原创 深入理解Linux内核day07--内存管理
内存管理 RAM的某些部分永久的分配给内核,并用来存放内核代码以及静态内核数据结构。 RAM的其余部分称为动态内存(dynamic memory),这不仅是进程所需的宝贵资源,也是内核本身所需的宝贵资源。实际上,整个系统的性能取决于如何有效地管理动态内存。 因此,现在所有多任务操作系统都在尽力优化对动态内存的使用,也就是说,尽可能做到当需要时分配,不需要时释放。
2016-05-04 14:22:46 1120
原创 深入理解Linux内核day06--进程调度
进程调度 Linux和任何分时系统一样,通过一个进程到另一个进程的快速切换,达到表面上看来多进程同时执行的神奇效果。 调度策略 传统Unix操作系统的调度算法必须实现几个互相冲突的目标:进程响应时间尽可能快,后台作业的吞吐量尽可能高,尽可能避免进程的饥饿线性,低优先级和高优先级进程的需要尽可能调和等等。 决定什么时候以怎样的方式选择一个新进程运行的这组规
2016-05-03 14:30:27 2570
C语言学生管理系统
2015-06-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人