Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux内核分析之工作队列

Linux内核分析之工作队列

可延迟函数和工作队列非常相似,但是他们的区别还是很大的。主要区别在于:可延迟函数运行在中断上下文中,而工作队列中的函数运行在进程上下文中。在中断上下文中不可能发生进程切换。可延迟函数和工作队列中的函数都不能访问进程的用户态地址空间。涉及数据结构/**Theper-CPUworkqueue(ifsinglethread,wealwaysusethefirst*possiblecpu).*/structcpu_workqueue_struct{spinlock...
Linux内核分析之进程地址空间

Linux内核分析之进程地址空间

本文主要介绍linux内核中进程地址空间的数据结构描述,包括mm_struct/vm_area_struct。进程线性地址区间的分配流程,并对相应的源代码做了注释。内核中的函数以相当直接了当的方式获得动态内存。当给用户态进程分配内存时,情况完全不同了。进程对动态内存的请求被认为是不紧迫的,一般来说,内核总是尽量推迟给用户态进程分配内存。由于用户进程时不可信任的,因此,内核必须能随时准备捕获用户态进程引起的所有寻址错误。当用户态进程请求动态内存时,并没有获得...
Linux内核分析之软定时器笔记

Linux内核分析之软定时器笔记

定时器是一种软件功能,即允许在将来的某个时刻,函数在给定的时间间隔用完时被调用。超时表示与定时器相关的时间间隔已经用完的那个时刻。linux上考虑两种类型的定时器,即动态定时和间隔定时器。第一种类型由内核使用,而间隔定时器由进程在用户态创建。动态定时器动态定时的主要数据结构是一个叫做tvec_bases的per cpu变量,他包含NR_CPUS个元素,系统中每个CPU都有一个。每个元素是一个tvec_base_t类型的数据结构,他包含相应CPU中处理动态定...
RedHat Linux 5 中文包安装

RedHat Linux 5 中文包安装

安装完成后首先面对的问题是全英文无法显示汉字和输入汉字的问题。需要找到光盘上的2个中文支持字体包安装上即可.文件名如下,注意不同版本文件明后面数字部分可能会不同,其代表版本号.下面是Red Hat Enterprise Linux 5.0版本下的中文包文件名.在iso文件的/server/文件夹下fonts-chinese-3.02-9.6.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm双击运...
Linux下GCC程序优化工具gprof和gcov实例

Linux下GCC程序优化工具gprof和gcov实例

第一:gprof工具gprof工具是通过在执行的过程中往可执行文件中加入特殊的代码,随着可执行程序的运行而运行,从而记录执行情况,通过这个工具可以检测某个函数调用的次数和时间,这样的话就可以集中优化那个调用最为频繁的函数,来实现程序的优化。这里是一个使用gprof的实例:[root@localhost new]# vim aa.c }}unsigned int nseq(unsigned int x0){ unsigned int i = 1,x; if...
Ubuntu 11.10外接显示器遇到的问题

Ubuntu 11.10外接显示器遇到的问题

因为自己用的T61笔记本,总感觉显示太小,于是在公司就使用外接显示器,一方面双屏可以提高效率,而且大显示器看着也舒服,但回到家中就不能用外接现实器了,有时候在公司也会连接投影仪,前不久发现一个问题,接上外部显示器开机,出现以下提示:后来回想起来,在台式机的Ubuntu 11.04的时候也出现过这样的情况。google一翻,大概明白了原因.Ubuntu在开机进入桌面的时候,会调用gnome-setting-deamon 这个程序,这个程序调用当前用户的一些设...
Ubuntu 用户安装深度软件中心教程

Ubuntu 用户安装深度软件中心教程

Linux Deepin 11.12 搭载最新版深度软件中心 2.0。目前已支持简体中文、繁体中文、英文三个语言版本。深度软件中心2.0 明显功能有:一键安装、升级软件,支持皮肤更换、并行下载,智能清理下载缓存等。目前已经支持 Ubuntu、Linux Mint 等发行版本。Ubuntu 11.10 用户安装深度软件中心Ubuntu 用户可通过下面方法运行深度软件中心。首先确保 Ubuntu 系统已经安装aria2 ,如果没有安装,使用下面命令安装:sud...
把文件放在Linux内存里

把文件放在Linux内存里

在Linux中可以将一部分内存mount为分区来使用,通常称之为RamDisk。RamDisk有三种实现方式:· 第一种就是传统意义上的,可以格式化,然后加载。这在Linux内核2.0/2.2就已经支持,其不足之处是大小固定,之后不能改变。为了能够使用Ramdisk,我们在编译内核时须将block device中的Ramdisk支持选上,它下面还有两个选项,一个是设定Ramdisk的大小,默认是4096k;另一个是initrd的支持。如果对Ramdisk的...
<< 511 512 513 514 515 516 517 518 519 520 >>