进程和线程的相关概念

简介

进程:系统资源分配和独立运行的基本单位。
进程控制块(PCB),用来描述进程的
线程轻型进程,调度和分派的基本单位。

线程的引入

进程创建(PCB)撤销和上下文切换开销都很大
多处理机提高CPU利用率并发和吞吐量。
线程只需保留少量线程控制块(TCB)程序计数器(指令执行到哪里了)、局部变量返回地址等,占用资源少。

线程的实现

(1)创建线程控制块TCB空间(标识符、优先级、CPU状态)
(2)分配资源,如栈空间,局部变量表。
(3)调度:时间片、优先级、
(4)撤销进程TCB并不会立即删除,可作为新线程使用

(1)用户级线程

存在用户空间,被用户进程进行创建和调度,无需切换内核,切换速度快,只有当系统调用时,才会映射到内核控制线程LWP(Light Weight Process)

(2)内核级线程

内核看不到用户线程,本质就是在操作内核级线程,二内核级线程再与用户线程对应。

进程的三种基本状态:

(1)就绪(Ready): 得到Cpu以外的所有资源,会存入就绪队列
(2)运行(running): 获得CPU正在执行
(3)阻塞(Block): 运行中的线程IO请求申请资源失败,会进入阻塞队列

引入挂起操作

(1)用户自己要停止进程查看问题
(2)父进程要修改子进程
(3)系统自己操作,进行负荷调节,系统繁忙,挂起一些不重要的进程

进程如何创建

(1)申请一个空白PCB
(2)分配运行所需要的资源,如内存、文件、IO设备、CPU
(3)初始化PCB,比如设置进程为就绪状态或静止就绪状态,优先级,程序计数器指向程序入口地址,栈指针指向栈顶

PCB:保存进程的控制和管理信息

(1)外部标识符(用户提供),内部标识符(OS设置的序号)
(2)进程调度信息:比如当前进程状态(以等待CPU多长时间,已执行多长时间)优先级等
(3)进程控制信息:进程同步和通信机制存放在PCB,比如消息对列指针和信号量,下一个PCB的指针

进程的同步:信号量和管程(Monitors)

管程:定义公共的数据结构如消息队列,主要进行同步操作

操作系统内核

简介:常用设备的驱动程序,一些频率高的模块如时钟管理和进程调度,他们常驻内存。
作用:比较保护他们防止被破坏,同时提高OS的运行效率。
终止进程:正常结束,异常退出(越界,算术异常等)

进程通信五种方式

(1)信号量:进程间同步和互斥进行的消息交换,低级数据量少
(2)共享内存:进程在共享存储区申请一块分区,由进程控制读写
(3)管道通信(有名管道和无名管道):内存缓冲区,无名管道是在父子进程
(4)消息队列:以消息(数据块)为单位传递数据。结构为消息链表
(5)套接字:本地套接字和远程RPC(套接字)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值