博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day 32并行 并发
阅读量:6598 次
发布时间:2019-06-24

本文共 1260 字,大约阅读时间需要 4 分钟。

#一 操作系统的作用:
    1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口
    2:管理、调度进程,并且将多个进程对硬件的竞争变得有序
#二 多道技术:
    1.产生背景:针对单核,实现并发
    ps:
    现在的主机一般是多核,那么每个核都会利用多道技术
    有4个cpu,运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,会被调度到4个
    cpu中的任意一个,具体由操作系统调度算法决定。
   
    2.空间上的复用:如内存中同时有多道程序
    3.时间上的复用:复用一个cpu的时间片
       强调:遇到io切,占用cpu时间过长也切,核心在于切之前将进程的状态保存下来,这样
            才能保证下次切换回来时,能基于上次切走的位置继续运行
进程的概念:
第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)(python的文件)、数据区域(data region)(python文件中定义的一些变量数据)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。
第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。[3]
进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。
进程和程序的区别:
程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。
而进程是程序在处理机上的一次执行过程,它是一个动态的概念。
程序可以作为一种软件资料长期存在,而进程是有一定生命期的。
程序是永久的,进程是暂时的。
举例:就像qq一样,qq是我们安装在自己电脑上的客户端程序,其实就是一堆的代码文件,我们不运行qq,那么他就是一堆代码程序,当我们运行qq的时候,这些代码运行起来,就成为一个进程了。
 
进程状态:
就绪,运行,堵塞
同步,异步,阻塞,非阻塞

所谓同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。要么成功都成功,失败都失败,两个任务的状态可以保持一致。其实就是一个程序结束才执行另外一个程序,串行的,不一定两个程序就有依赖关系。

所谓异步是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了整个任务就算完成了。至于被依赖的任务最终是否真正完成,依赖它的任务无法确定,所以它是不可靠的任务序列

异步非阻塞形式:效率更高,因为打电话是你(等待者)的事情,而通知你则是柜台(消息触发机制)的事情,程序没有在两种不同的操作中来回切换

转载于:https://www.cnblogs.com/litieshuai/p/9836970.html

你可能感兴趣的文章
C#语音朗读文本 — TTS的实现
查看>>
MongoDB中的高级查询(二)
查看>>
再寄小读者之数学篇[2014.07.01-2014.12.31]
查看>>
LA 4080 (多源最短路径+边修改+最短路径树)
查看>>
轻量级工具提示jQuery插件 - Tooltipster
查看>>
lxc命令简单速查
查看>>
[译] 构建未来的设计生态系统
查看>>
谈谈Java中的代理模式
查看>>
JNI开发流程与引用数据类型的处理
查看>>
Netty NioEventLoop 创建过程源码分析
查看>>
iOS 架构模式<demo解析>
查看>>
技术经理值得关注的5件事情
查看>>
这些 Web 开发工具,你都知道吗?
查看>>
Python正则表达式初识(十)附正则表达式总结
查看>>
由event target引发的关于事件流的一连串思考(一)
查看>>
JQuery教程
查看>>
java动态代理
查看>>
模拟长按事件
查看>>
三篇文章带你极速入门php(二)之迅速搭建php环境
查看>>
express express-session 小书
查看>>