4(进程的创建(Creation of Process)
在系统中每当出现了创建新进程的请求后,os便调用进程创建原语Creat按下述步骤统创建一一个新进程:
(1)申请空白PCB,为新进程申请获得唯-的数字标识符, 并从PCB 集合中索取一个
(2)为新进程分配其运行所需的资源,包括各种物理和逻辑资源,如内存、文件、IO设备和CPU时间等。这些资源或从操作系统或仅从其父进程获得。新进程对这些资源的需求详情一般也要提前告 知操作系统或其父进程。例如,为新进程的程序和数据以及用户栈分配必要的内存空间时,操作系统必须知道新进程所需内存的大小:①对于批处理作业,其大小可在用户提出创建进程要求时提供:❷若是为应用进程创建子进程,也应是在该进程提出创建进程的请求中给出所需内存的大小;③对于交互型作业,用户可以不给出内存要求而由系统分配一定的空间: 如果新进程要共享某个已在内存的地址空间(即已装入内存的共享段),则必须建立相应的链接。
(3)初始化进程控制块(PCB). PCB的初始化包括:①初始化标识信息,将系统分配的标识符和父进程标识符填入新PCB中:②初始化处理机状态信息,使程序计数器指向程序的入口地址,使栈指针指向栈顶;③初始化处理机控制信息,将进程的状态设置为就绪状态或静i止就绪状态,对于优先级,通常是将它设置为最低优先级,除非用户以显式方式提出高优先级要求。
(4) 如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。
以上文章用生动的语言介绍给我听
好的,我会用一个简单的生活场景来解释这段文章。
想象一下你正在开设一家新的餐厅。
申请空白PCB:这就像你为你的新餐厅申请一个营业执照。每一家餐厅都需要有一个独特的、不重复的营业执照号,这个号就像进程的数字标识符。你需要从政府部门,也就是"PCB集合"中,获取这个营业执照。
为新进程分配资源:这就好比你为餐厅购买食材、雇佣员工、租用场地等。你可能需要告诉供应商你需要多少食材,告诉房东你需要多大的场地,等等。在电脑系统中,当一个进程要运行,它需要告诉操作系统它需要多少内存、多少CPU时间等。而且,如果你的餐厅想要共享某些资源(比如与邻居餐厅共享一个停车场),那么你们之间需要建立一个协议,就像进程中的"链接"。
初始化进程控制块(PCB):这就像你为餐厅设置开业的日子和时间、决定餐厅的营业模式和首日特价等。当你的餐厅准备好了,你需要告诉所有人你什么时候开业、有什么特色菜品。在电脑系统中,初始化PCB就是设置进程的基本信息、起始位置、初步状态等。
插入就绪队列:这就像你的餐厅已经完成所有准备工作并且已经准备好接客了,所以你会在前门挂上一个“营业中”的牌子,告诉大家可以进来用餐。在电脑系统中,当一个进程准备好了,就会被放入一个等待运行的列表里,等待CPU来处理。
简而言之,创建一个新的进程就像开设一家新的餐厅,需要经过一系列的步骤和准备,确保一切都能顺利运作。