介绍 以下代码为例: #include <stdio.h> #include <unistd.h> int g_val = 100; int main() { __pid_t pid = fork(); if (pid == 0) { // son
线程概念 线程是进程内的一个执行流。线程在进程的地址空间内运行,其拥有该进程的一部分资源。 OS为线程设计专门的数据结构描述线程对象,TCB。(windows采用该方案) 线程和进程都需要被执行和调度,仅从调度上来说,线程和进程高度重叠。故Linux中并没有为线程设计专门的数据结构,而是复用了进程的
如何理解文件 文件包含其文件内容+文件属性,对于文件内容或者属性的操作都是文件操作。 文件操作,需要通过进程来进行;一个文件要被进程访问,则必须先被该进程打开,未打开的文件称为静态文件。 故:文件操作,本质是进程对其打开的文件的操作。 文件操作 相关系统调用 int open(const char*
介绍 可使用kill -l命令查看信号列表。其中1-31号为普通信号、34-64为实时信号。 任何信号发送的方式,都是通过OS以进程为单位,向进程发送。 进程本身必对信号具有保存能力。信号保存在进程PCB中,使用一个int的32个比特位表示是否收到1-31中的某信号,1有,0没有。 故,OS发送信号
进程概念 进程:一个运行起来(加载到内存)的程序。 讲道理,这个教科书式的概念属实是过于抽象了啊😓,总之我第一次接触这个概念的时候,一脸懵b。 首先我们来明白何为程序,具像化来说,程序可以认为就是我们计算机硬盘上的可执行文件(如helloworld.exe)。从上一节我们可以得知,程序必须要加载到
冯诺依曼体系结构 我们的计算机硬件方面: CPU=运算器+控制器+其他(图中没有体现) CPU有自己的一套二进制代码指令集,其功能简单来说就是执行别人下发的指令并计算别人提供的数据。 输入设备(如磁盘、键盘),输出设备(如网卡、显示器)相对于CPU和内存而言相当于外设。 从上述结构图中,我们可以了解
Net
OS
Linux