自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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语言学生管理系统

1 /* 2 主函数 3 时间:2015/04/11 4 */ 5 #include "menu.h" 6 #include "student.h" 7 #include "teacher.h" 8 #include "manager.h" 9 static int init(void); // 初始化函数 10 static void destroy_all(void); //销毁全部链表 11 int main(void) 12 { 13 int ret; 14 printf("\033[?25l"); 15 ret = init(); 16 if(ret != 0) 17 { 18 printf("init_error %d\n",ret); 19 return -1; 20 } 21 22 menu_operation(); 23 //结束操作,销毁全部链表 24 destroy_all(); 25 } 26 27 28 //初始化函数 29 static int init(void) 30 { 31 //1管理员信息初始化 32 if(init_manager() != 0) 33 { 34 return -1; 35 } 36 //2教师信息初始化 37 if(init_student() != 0) 38 { 39 return -2; 40 } 41 //3学生信息初始化 42 if(init_teacher() != 0) 43 { 44 return -3; 45 } 46 return 0; 47 48 } 49 static void destroy_all(void) 50 { 51 //管理员链表销毁 52 destroy_manager(); 53 //教师链表销毁 54 destroy_teacher(); 55 //学生链表销毁 56 destroy_student(); 57 CLEAR_SCREEN(); 58 printf("\033[34m\033[2;60H%s\033[0m","感谢您的使用谢谢!\n"); 59 getchar(); 60 getchar(); 61 printf("\033[?25h"); 62 }

2015-06-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除