进程与线程 进程是具有一定独立功能的程序,关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。从逻辑角度来看,多线程的意义在于一个应用程序(进程)中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用来实现,而是作为进程来调度和管理以及资源分配。这就是 ...
分类:
其他好文 时间:
2021-05-25 17:43:56
阅读次数:
0
一、什么是进程间通信? Linux环境下,进程地址空间是相互独立的,每个进程有各自独立的用户地址空间,进程之间的全局变量在另一个进程中都看不到,要交换数据必须通过内核。进程1把数据写入内核的一个缓冲区,另一个进程可以从内核缓冲区读走,内核提供的这种机制就是进程间通信IPC(InterProcess ...
分类:
系统相关 时间:
2021-01-25 10:42:24
阅读次数:
0
进程切换分两步: 1.切换页目录以使用新的地址空间 2.切换内核栈和硬件上下文 对于linux来说,线程和进程的最大区别就在于地址空间,对于线程切换,第1步是不需要做的,第2是进程和线程切换都要做的。 切换的性能消耗: 1、线程上下文切换和进程上下问切换一个最主要的区别是线程的切换虚拟内存空间依然是 ...
分类:
编程语言 时间:
2020-07-10 19:12:24
阅读次数:
78
一、精简的Linux系统概念模型概述 一个精简的Linux系统概念模型主要应该包括:进程管理,内存管理,文件和设备管理这几个主要部分,还应该有GUI等方便用户操作的平台。 操作系统的第一要务是帮助用户操作所有计算机硬件,应该将硬件设备封装成接口供用户调用。同时为了保证系统安全,应该实现用户空间和内核 ...
分类:
其他好文 时间:
2020-07-09 22:33:04
阅读次数:
90
一 、IO操作本质 数据复制的过程中不会消耗CPU 1 内存分为内核缓冲区和用户缓冲区 2 用户的应用程序不能直接操作内核缓冲区,需要将数据从内核拷贝到用户才能使用 3 而IO操作、网络请求加载到内存的数据一开始是放在内核缓冲区的 二、 IO模型 BIO – 阻塞模式I/O 用户进程从发起请求,到最 ...
分类:
其他好文 时间:
2020-06-18 10:40:17
阅读次数:
47
一、概述 决定何时、如何选择一个新进程运行的这组规则叫做:调度策略(scheduling policy)。 Linux的调度是基于分时技术(time sharing):多个进程以“时间多路复用”方式运行,因为CPU的时间呗分成“片”(slice),给每个可运行进程分配一片。如果当前运行进程的时间片或 ...
分类:
系统相关 时间:
2020-05-19 20:51:09
阅读次数:
74
daemon进程,后台执行,生存周期长 查看守护进程:ps -axj 或 ps -efj 用[ ] 括起来的就是守护进程 特殊进程kthreadd:用来创建其他内核进程的进程,PID为2 创建守护进程的规则: umask设置文件模式屏蔽字,一般设为0 fork后父进程exit:子进程继承了父进程的进 ...
分类:
系统相关 时间:
2020-03-14 13:18:43
阅读次数:
74
1. fork系统调用 pid_t fork(); 该函数的每次调用都返回两次,在父进程中返回子进程的PID,在子进程中则返回0. 该返回值是后续代码判断当前进程是父进程还是子进程的依据。fork调用失败时返回-1,并设置errno。 fork函数复制当前进程,在内核进程表中创建一个新的进程表项。新 ...
分类:
系统相关 时间:
2020-03-01 17:09:20
阅读次数:
99
linux下netlink的使用简介 一、什么是netlink Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口。 在Linux 内核中,使用netlink 进行应用与内核通信的应用有很多,如 路由 daemon(NET ...
分类:
Web程序 时间:
2020-02-09 14:48:36
阅读次数:
155
进程通信:进程间的信息交换。 进程是分配系统资源的单位,因此各进程拥有的内存地址空间相互独立。 为了保证安全,一个进程不能直接访问另一个进程的地址空间。 为了保证进程间的安全通信,操作系统提供了一些方法。 管道 管道:指用于连接读写进程的一个共享文件,又名pipe文件。其实就是在内存中开辟的一个大小 ...
分类:
系统相关 时间:
2020-02-08 23:12:28
阅读次数:
142