操作系统
水木流年追梦
清华大学计算机研究生,专研算法工程
展开
-
linux ubuntu实用命令记录
du -sh 文件夹名 查看某文件夹大小原创 2020-12-25 10:24:54 · 188 阅读 · 0 评论 -
软件设计师学习3——操作系统知识
1.从资源管理的角度来看,操作系统的功能可分为处理机管理、文件管理、存储管理、设备管理和作业管理5大部分。2.处理机管理:在多道程序批处理系统和分时系统中有多个并发执行的程序,为了描述系统中程序执行时动态变化的过程引入了进程。进程是资源分配和独立运行的基本单位。3.在多道程序系统中,进程在处理器上交替运行,状态也在不断地发生变化,因此进程有3个基本状态:运行、就绪和阻塞。由于进程的不断...原创 2019-04-08 09:01:00 · 267 阅读 · 0 评论 -
简单理解操作系统中的PV操作
可以这样理解:临界区门前有棵树用来挂红灯进程想进CPU的门先得上树取下盏灯(调用一次P)取下一个去敲门(S=S-1)如果树上没有灯取(S<=0)树说暂时欠你一盏灯(S为负时)进程没辙只好在门外边排队等(WAIT(S))得灯的进程继续运行运行完了要出门(调用一次V)马上还回一盏灯(S=S+1)若有进程在催债(S<=0)放个进程进去完成(Release(转载 2017-11-25 21:26:01 · 8227 阅读 · 1 评论 -
make -C $(KDIR) M=$(PWD) modules
make -C $(KDIR) M=$(PWD) modules //执行的命令,该命令是make modules命令的扩展,-C选项的作用是指将当前的工作目录转移到指定的目录,即(KDIR)目录,程序到(pwd)当前目录查找模块源码,将其编译,生成.ko文件。...原创 2017-11-25 10:27:39 · 12606 阅读 · 2 评论 -
操作系统中的互斥锁与条件变量
转自https://www.douban.com/note/226974753/与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"转载 2017-11-17 21:19:25 · 2343 阅读 · 0 评论 -
pthread_mutex_lock的作用
pthread_mutex_lock的作用实际就是上锁,这个函数和pthread_mutex_unlock配套使用。两句函数中间的代码就是被上锁的代码,被上锁的代码只能有一个线程使用,别的线程执行到这里会发生阻塞,只有unlock之后,别的线程才能使用lock之后进入代码。原创 2017-11-17 19:32:36 · 8720 阅读 · 0 评论 -
如何将linux内核的带级别控制的printk内容打印出来
要将linux内核的带级别控制的printk内容打印出来,在命令行 输入 dmesg -n 8 就将所有级别的信息都打印出来 Linux命令:dmesg 功能说明:显示开机信息。 语 法:dmesg [-cn][-s ] 补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/va转载 2017-11-01 22:35:13 · 684 阅读 · 0 评论 -
编写模块时的声明(含MODULE_LICENSE等)
编写模块必须先声明下面两句:#include //这个头文件包含了许多符号与函数的定义,这些符号与函数多与加载模块有关#include //这个头文件包含了你的模块初始化与清除的函数另外,如果你的模块需要用到参数传递,那么你可能就要声明moduleparam.h这个头文件了。转载 2017-11-01 20:18:05 · 840 阅读 · 0 评论 -
[Linux] 内核模块&proc使用 实例:统计所有进程的信息
实例要求:编写一个Linux的内核模块,其功能是遍历操作系统所有进程。该内核模块输出系统中:每个进程的名字、进程pid、进程的状态、父进程的名字;以及统计系统中进程个数,包括统计系统中TASK_RUNNING、TASK_INTERRUPTIBLE、TASK_UNINTERRUPTIBLE、TASK_ZOMBIE、TASK_STOPPED等(还有其他状态)状态进程的个数。同时还需要编写一个用转载 2017-11-01 12:42:50 · 4096 阅读 · 0 评论 -
"makefile:5: *** missing separator. Stop."
写makefile时出现这个错误提示是表示makefile中的命令前没有使用TAB。造成的原因可能有:1. 命令前没有使用TAB,2. 在VIM的配置文件"/etc/vimrc"中使用了"set expandtab".因为"set expandtab"会将TAB转换成空格原创 2017-11-01 11:05:39 · 2098 阅读 · 0 评论 -
Shell学习
1.什么是Shell?在UNIX以及Linux中,Shell就是套在内核外面的一层外壳,正是有了Shell的存在,才向普通用户隐藏了许多关于系统内核的细节。Shell又称命令解释器,负责识别用户输入的命令并传递给操作系统。类似于Windows的命令行但强大的多,在UNIX或LINUX中,它既是用户交互的界面,也是控制系统的脚本。2.Shell脚本程序的两种执行方式:可以按顺序输入一原创 2017-04-06 21:37:03 · 368 阅读 · 0 评论 -
Linux常用的命令
1)[Tab]使用Tab键来进行命令补全,Tab键一般键盘是在字母Q旁边,这个技巧给你带来的最大的好处就是当你忘记某个命令的全称时你可以只输入它的开头的一部分然后按下Tab键就可以得到提示或者帮助完成:[Ctrl+c]当你在 Linux 命令行中无意输入了一个不知道的命令,或者错误的使用了一个命令,导致在终端里出现了你无法预料的情况,比如,只有光标在闪烁原创 2017-02-13 16:14:50 · 378 阅读 · 0 评论