网站服务器年线太长,绍兴专业做网站公司,网站建设推荐网,网站的前端开发一、简单介绍
在我们写完程序后#xff0c;由编译器形成二进制的文件#xff0c;而这个文件在磁盘中存放#xff0c;磁盘在外设中#xff0c;如果我们要执行程序#xff0c;就必需要把程序加载到内存。我们可以打开任务管理器#xff0c;就可以发现我们的电脑会运行很多…一、简单介绍
在我们写完程序后由编译器形成二进制的文件而这个文件在磁盘中存放磁盘在外设中如果我们要执行程序就必需要把程序加载到内存。我们可以打开任务管理器就可以发现我们的电脑会运行很多的程序那这么多程序操作系统肯定就需要进行对这些程序管理。操作系统该如何对这些程序进行管理呢 根据先描述再组织的过程进行建模我们就可以用一个结构体对程序进行管理。这里结构体里面包括“状态、优先级、标识符等等”当我们把进程加载到内存后我们就可以在内存中创建一个结构体用来描述程序而这个结构体就叫PCBprocess ctrl block进程控制块在Linux中称为task_struct我们再把结构体用指针链接起来这样操作系统就可以通过PCB对程序进行管理。 这里我们就可以把进程这样描述 进程 内核数据结构 可执行的程序。
2.粗略的了解
这里我们可以通过一个用一个runqueue 结构体来对进程进行管理里面用一个PCB指针来指向内存中的PCBCPU就可以通过runqueue 来找到对应对内存中PCB再通过PCB来找到对应的可执行程序然后就能运行程序。所以未来我们的对进程的管理就是PCB的管理跟可执行程序每半毛钱关系。 那PCB中包含了什么东西呢下面用张图来解释 后面我将一一解释task_struct 中的内容
希望本文能对各位读者有些许帮助如果文中有不当之处还望各位大佬指正谢谢