2 进程
2.1进程概念
进程:运行中的程序。
虚拟化CPU: 时分共享(time sharing)CPU技术,允许用户运行多个并发进程,让一个进程只运行一个时间片,然后切换到其他进程。
时分共享:通过允许资源由一个实体使用一小段时间,然后由另一个实体使用一小段时间,如此下去,所谓的资源(例如,CPU或网络链接)可以被许多人共享。
空分共享:资源在空间上被划分给希望使用它的人。例如,磁盘空间是一个空分共享资源,因为一旦将块分配给文件,在用户删除文件之前,不可能将它分配给其他文件。
进程的机器状态:程序在运行时可以读取或更新的内容,主要包括内存和寄存器。
内存/地址空间,进程读取和写入的数据在内存中,指令也在内存中。
寄存器:许多指令会读取和更新寄存器。
程序计数器、栈指针帧指针等特殊寄存器。
2.2 进程API
1、进程创建:调用操作系统的这个API来创建新的进程;
2、进程销毁:运行结束后没有自动退出的失控进程可以调用这个接口强制销毁。
3、其他控制:暂停进程,恢复进程;
4、进程状态:获取相关进程的状态信息。
2.3进程创建过程
1、加载代码和静态数据到内存中,从磁盘中读取程序最初的可执行格式放到地址空间中。
2、创建和初始化栈内存用于程序存放局部变量、函数参数以及返回地址等。创建和初始化堆内存用于显式请求动态分配数据(malloc()申请,free释放)。
3、初始化(I/O),文件描述符等相关任务
4、启动程序,跳转到main()入口函数,将CPU控制权转移给创建的线程。
2.4 进程状态
进程一般处于三种状态:
运行:正在处理器上运行。
就绪:在就绪状态下,进程已经准备好,但由于某种原因,操作系统选择不在此时运行。
阻塞:在阻塞状态下,一个进程执行了某种操作,直到发生其他事件时才会运行。如当进程向磁盘发起I/O请求时,他就会被阻塞。
2.5 进程数据结构
进程列表,进程控制块,上下文切换