计算机管理硬件:
先去组织起来再去描述起来(类比先去组织小组,再去详细描述工作)
系统调用和库函数概念:
系统就像是银行,会去防着我们,但是会释放一些接口用于我们使用,这个就是叫做系统调用
不过一些人发现将接口封装起来就方便使用,于是就形成了库函数。
进程:
我们历史上执行的所有的指令,工具,自己的程序,运行起来,全部都是进程!!
通俗讲解就是:pcb(task_struct)+程序代码和数据,linux里的进程控制块就是task_struck
主播比较懒就用爱总结一下:
标识区分:通过唯一标识符,实现进程间的区分,如同进程的“身份编号”。
• 状态相关:涵盖任务状态、退出代码、退出信号等内容,反映进程运行阶段与结束相关情况。
• 调度依据:优先级决定进程获取 CPU 资源的相对权重,影响调度顺序 。
• 执行追踪:程序计数器记录即将执行的下一条指令地址,把控进程执行流程。
• 内存关联:内存指针连接程序代码、进程数据及共享内存块,管理进程内存使用。
• 硬件上下文:上下文数据保存进程执行时处理器寄存器的数据,涉及 CPU 运行现场。
• I/O 管理:I/O 状态信息涵盖进程的 I/O 请求、所用设备及文件列表,协调输入输出。
• 统计记账:记账信息包含处理器时间、时钟数等统计,用于资源计量与管控 。
proc
进程的信息可以用/proc来看
如果想结束进程可以用kill+具体的pid,但我当时另一个号权限不足就是不能直接结束进程。
bash
当时在查看父进程的getppid的时候就是卡到具体的信息就是bash
getpid和getppid
可以查看进程的父与子的进程编号(🆔)
fork
fork()
确实像 “时间线分裂”—— 从 fork()
调用这个 “节点” 开始,原本一条的进程时间线分裂成两条独立的时间线(父进程和子进程),两条时间线各自沿着相同的代码路径继续推进,彼此互不干扰。
fork会去返回两个值,但是是不同的时间线返回,一个是父进程一个子进程。
进程的独立性:
进程共用数据和代码,但是如果一个进程要去改的话,系统会写时拷贝这样就互相不影响来