Linux如何实现资源的分配
(一)资源分配
Linux基于Unix开发,是一个多用户的操作系统,而且Linux每个进程都拥有一套完整的资源集,所以Linux要实现关于系统CPU,内存和io资源的分配。
CPU:将CPU运行时间分为很短的时间片,按时间片把CPU分配给不同进程使用,在分配的时间片内不能完成其计算,该进程暂停运行,等待下一轮,然后下一进程使用,直到运行完所有进程。(因为计算机速度快,所以给每个用户的感觉是自己独占了一台计算机)
内存:先把每个进程都存进虚拟内存,然后通过映射分配到真实内存的相应位置(如果进程占用完内存,则下个进程不能再使用,否则内存溢出)
io资源:使用io复用技术,先读取一个进程的部分资源,再停下来读取另一个进程的部分资源,接着上个进程的读取进度继续读取,一直这样直到读取完所有资源。
进程:直白地讲,进程就是应用程序的启动实例。比如我们运行一个游戏,打开一个软件,就是开启了一个进程。进程拥有代码和打开的文件资源、数据资源、独立的内存空间。
(二)线程,进程与协程
线程:线程从属于进程,是程序的实际执行者。一个进程至少包含一个主线程,也可以有更多的子线程。线程拥有自己的栈空间。
协程:协程,英文Coroutines,是一种比线程更加轻量级的存在。正如一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。
对操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元。无论进程还是线程,都是由操作系统所管理的。而协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。这样带来的好处就是性能得到了很大的提升,不会像线程切换那样消耗资源。
Xshell命令
获取命令帮助
内部命令与外部命令:内部命令被构建在shell之中。当执行shell命令时,内部命令的执行速度非常快。这是因为没有其他的进程因为执行这条命令而被创建。比如,当执行“cd”命令时,没有进程被创建,在执行过程中只是简单的改变当前的目录。外部命令并没有被构建在shell中。这些可执行的外部命令保存在一个独立的文件当中。当一个外部命令被执行时,一个新的进程即被创建同时命令被执行。比如,当执行“cat”命令时
Linux多用户实现资源分配,帮助命令及shell(bash特点)
最新推荐文章于 2022-12-03 15:29:55 发布
本文详细介绍了Linux如何实现多用户下的资源分配,包括CPU时间片分配、内存管理和io资源的io复用技术。此外,还探讨了进程、线程和协程的概念。讲解了Xshell中的命令帮助获取方式,如`type`、`file`、`help`和`man`等,并介绍了Linux文本编辑器vim的基本操作和bash shell的特点,如命令补全和历史命令保存。
摘要由CSDN通过智能技术生成