LINUX进程管理
木木总裁
车载BSP
手机BSP
展开
-
Linux设备驱动中的阻塞和非阻塞I/O
Linux设备驱动中的阻塞和非阻塞I/O【基本概念】1、阻塞 阻塞操作是指在执行设备操作时,托不能获得资源,则挂起进程直到满足操作所需的条件后再进行操作。被挂起的进程进入休眠状态(不占用cpu资源),从调度器的运行队列转移到等待队列,直到条件满足。2、非阻塞 非阻塞操作是指在进行设备操作是,若操作条件不满足并不会挂起,而是直接返回或重新查询(一直占用CPU资源)直到操作条件...原创 2019-06-12 16:35:32 · 351 阅读 · 0 评论 -
Linux lsof命令使用小结
Linux lsof命令使用小结 lsof(list open files)是一个列出当前系统打开文件的工具。在Linux环境下,任何事物都是以文件的形式存在,通过文件不仅可以访问常规数据,还可以访问网络连接和硬件。所以,如传输控制协议(TCP)和用户数据报协议(UDP)套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系...原创 2019-06-26 17:07:04 · 147 阅读 · 0 评论 -
linux 自旋锁和信号量
linux 自旋锁和信号量自旋锁最多只能被一个可执行线程持有(读写自旋锁除外)。自旋锁不会引起调用者睡眠,如果一个执行线程试图获得一个已经被持有的自旋锁,那么线程就会一直进行忙循环,一直等待下去(一直占用CPU),在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高...转载 2019-07-01 18:57:35 · 238 阅读 · 0 评论 -
用户空间与内核空间,进程上下文与中断上下文[总结]
用户空间与内核空间,进程上下文与中断上下文[总结]1、前言 最近在学习linux内核方面的知识,经常会看到用户空间与内核空间及进程上下文与中断上下文。看着很熟悉,半天又说不出到底是怎么回事,有什么区别。看书过程经常被感觉欺骗,似懂非懂的感觉,很是不爽,今天好好结合书和网上的资料总结一下,加深理解。2、用户空间与内核空间 我们知道现在操作系统都是采用虚拟存储器,那么对32位操...转载 2019-06-17 17:52:18 · 216 阅读 · 0 评论 -
进程上下文与中断上下文的理解
进程上下文与中断上下文的理解一.什么是内核态和用户态内核态:在内核空间执行,通常是驱动程序,中断相关程序,内核调度程序,内存管理及其操作程序。用户态:用户程序运行空间。二.什么是进程上下文与中断上下文1.进程上下文:(1)进程上文:其是指进程由用户态切换到内核态是需要保存用户态时cpu寄存器中的值,进程状态以及堆栈上的内容,即保存当前进程的进程上下文,以便再次执行...转载 2019-06-17 16:12:10 · 930 阅读 · 0 评论 -
忙等待和阻塞等待
一点心得,详情看代码// 阻塞等待,阻塞期间不占用cpu sem_wait(&sem); // 忙等待,虽然也是在等待信号,但是一直占用cpu while(1) { if (sem_trywait(&sem) == 0) break; else if (errno != EAGAIN) { perror("t...原创 2019-06-04 17:30:00 · 5786 阅读 · 1 评论 -
操作系统 临界资源 临界区
为了保护共享资源,不让多个进程同时访问这个共享资源,即阻止多个进程同时进入访问这些资源的代码段,这个代码段称为临界区(也称为管程),这种一次只允许一个进程访问的资源称为临界资源.临界资源是指每次仅允许一个进程访问的资源.属于临界资源的硬件有打印机、磁带机等,软件有消息缓冲队列、变量、数组、缓冲区等。 诸进程间应采取互斥方式,实现对这种资源的共享。每个进程中访问临界资源的那段代码称为临界...转载 2019-06-04 13:53:34 · 6477 阅读 · 0 评论 -
共享内存映射之mmap()函数详解
共享内存映射之mmap()函数详解共享内存映射之mmap()函数详解 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少...转载 2019-06-10 10:33:31 · 500 阅读 · 0 评论 -
【Linux】Linux的进程调度
长期以来,Linux一直把具有较好的平均系统响应时间和较高的吞吐量作为调度算法的主要目标。但近年来,鉴于嵌入式系统的要求,Linux2.6在支持系统的实时性方面也做出了重大的改进。Linux进程的时间片与权重参数在处理器资源有限的系统中,所有进程都以轮流占用处理器的方式交叉运行。为使每个进程都有运行的机会,调度器为每个进程分配了一个占用处理器的时间额度,这个额度叫做进程的“时间片”,...转载 2019-06-03 19:15:41 · 460 阅读 · 0 评论 -
wait_event_interruptible()和wait_up_interruptible()
休眠所谓休眠就是让出CPU 然后并不返回wait_event_interruptible(wq, condition)condition = 0 ///休眠condition = 1 ///唤醒wait_event_interruptible()和wait_up_interruptible()wait_event_interruptible...原创 2019-06-19 16:27:45 · 13952 阅读 · 0 评论 -
linux中fork()函数详解
linux中fork()函数详解一、fork入门知识一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都...转载 2019-06-03 15:14:02 · 645 阅读 · 0 评论 -
Linux系统调用--getpid/getppid函数详解
Linux系统调用--getpid/getppid函数详解【getpid/getppid系统调用】功能描述:getpid返回当前进程标识,getppid返回父进程标识。用法:#include <sys/types.h>#include <unistd.h>pid_t getpid(void);pid_t getppid...转载 2019-06-03 14:38:45 · 9927 阅读 · 0 评论 -
线程与进程的区别
线程与进程的区别进程与线程的区别是很重要的一个知识点,也是面试中经常问到的。网上转载博客痕迹明显,且千篇一律。我简单提取下,记录下来,希望能帮到你。另外在 LeetCode 上也有关于此问题的讨论,可以直接浏览“Read more” 部分。引入进程之前–多道程序设计概述多道程序设计技术是操作系统最早引入的技术,它的设计思想是允多个程序同时进入内存并运行,其目的是为了CPU...转载 2019-06-19 10:08:49 · 284 阅读 · 0 评论 -
死锁、活锁和饿死的理解(转)
死锁、活锁和饿死的理解(转)看到一组漫画,很形象的说明了死锁、活锁和饿死的区别,原文链接:http://f.dataguru.cn/thread-541686-1-1.html ,这篇文章的死锁有点问题,死锁参考的:https://www.cnblogs.com/lance43990740/p/6853631.html (话糙理不糙)1.死锁:是指两个或两个以上的进程(或线程)在执行过程中...转载 2019-07-02 10:01:12 · 3770 阅读 · 1 评论