linux笔记--操作系统

发布于:2021-09-20 12:48:02

(复*框架,不时更新修改)


#操作系统:计算机系统包含的基本程序集合

? ? 》内核(进程管理,进程调度,进程间通信机制,内存管理,中断异常处理,文件系统,I/0系统,网络部分)

? ? 》其他程序(函数库,shell程序)

操作系统目的:





#进程创建执行:进程执行时,会被装载进虚拟内存,并将相关信息添加到task_struct里

? ? ?》内存分布

? ? ? ? *文本段,程序源指令

? ? ? ? *数据段,静态变量

? ? ? ? *堆,动态内存分区区域

? ? ? ? *栈,动态增长与收缩的段,保存本地变量

?

1.进程概念,PCB

2.C内存空间分布规律,进程内存映像和应用程序区别

3.环境变量(概念及常见的)

4.进程状态,僵尸进程,机制因果

? ? *僵尸进程:子进程在父进程没有调用wait()或waitpid()情况下退出,该子进程为僵尸进程。

? ? ? ? ? ? ? 如果父进程还一直不调用wait,该僵尸进程无法回收,只能在父进程推出后被init回收。





5.linux进程优先级

6.how to 创建进程,孤儿进程,进程独立性与竞争性

? ? *两种创建方法:fork()和execve(假的),创建子进程用fork()系统调用,子进程会得到父进程数据段,栈段,和堆区域部分拷贝,可被子进程修改,文本段为共享,不可修改。

? ? ? ? ? ? ? ? 用exceve创建新进程,销毁所有内存段去创建新内存段,但需要可执行文本或脚本做参数

? ? ? ? ? ? ? ? 两者都是运行进程的子进程。

? ? *孤儿进程:父进程退出后它的一个或多个还在运行的子进程就是孤儿进程。

?

7.进程环境及常见系统调用

? ? *进程环境:main函数与进程终止。

? ? ? ? ? ? ? 》main函数:当内核使用一个exec函数执行c程序时,会提前调用一个特殊的启动例程,可执行程序将此列程指定为程序起始地址,启动例程从内核中获取命令行参数与环境变量,为main()函数做准备。

? ? ? ? ? ? ? 》进程终止:8种,前5种正常终止方式为:1.从main函数调回;2调用exit函数;3.调用-exit或-Exit;4,最后一个进程从启动例程返回;5.最后一个线程调用abort函数;后三种异常终止:6.调用about函数;接受一个信号并终止;最后一个线程对取消请求做出响应。





8.栈帧,C变量局部性因果

? ? 栈帧:堆栈

? ? ? ? ? 》堆栈:C语言程序运行时必须的一个记录调用路径和参数的空间。





9.线程





10.





11.实际用户/有效用户/实际用户组/有效用户组/有效用户组设置/有效用户组设置区别

? ?实际用户ID和实际用户组ID:登录用户的uid和gid,标识你是谁。

? ?有效用户ID和有效用户组ID:实际用户ID,启用SUID设置,有效用户ID等于文件所有者的uid。实际用户组ID.启用SGID,有效用户组ID等于文件所有者的gid。与附加组ID决定进程访问权限。

? ?suid(chmod u+s file)只能应用在可执行文件上,允许任意用户在执行文件时以文件拥有者身份执行

? ?sgid(chmod g+s file)只能应用在可执行文件上,使任意用户在可执行文件时,将以文件拥有者身份执行。





? ?





12.文件描述,文件指针





13.进程等待





14.进程程序替换





15.重定向











相关推荐

最新更新

猜你喜欢