• 并发编程---操作系统


    操作系统

    操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。操作系统所处的位置如图

     

    1.操作系统的功能

    1.隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源的(系统调用接口)。

    2.将应用程序对硬件资源的竞态请求变得有序化。

    2.计算机的发展历程

    1.1940-1955(第一代计算机)真空管和穿孔卡片,没有操作系统,没有编程语言。优点:程序员可以独享资源。缺点:在一段时间内只有一个人使用。
    2.1955-1965(第二代计算机)晶体管和批处理系统 优点:批处理,节省了时间。 缺点:人为控制,影响了程序的开发效率

     

    3.1965-1980(第二代计算机)集成电路芯片和多道程序设计,仍然是批处理

    多道技术

    多道技术的背景:单核情况下产生并发

    空间上的复用:内存中同时有多道程序。暴风,word,音乐,都在内存中,物理层面上,保证多个程序的内存是相互隔离的。

    时间上的复用:

    • 复制一个cpu的时间片,cpu轮流执行暴风,word,音乐,在哪个软件进行io阻塞的时候,cpu就离开这个软件,去执行下一个。
    • cpu来回切(速度非常快,一个时间cpu只能运行一个),切走之前,需要保存状态,下次回来,接着运行。
    • 一个程序占用cpu时间过长,cpu会切,即使只有一个cpu,给人的感觉,机器上能跑多个程序。不能提升cpu运行效率。反而会降低。

    并发和并行

    并发:只是看起来同时运行,单核

    并行:真正意义的同时运行,多核,可以同时运行多个进程,如果进程数大于CPU的数量,就等待

    已被分配CPU的进程遇到io,或者进程运行过长,进程优先级,都会让操作系统把进程的CPU拿走。之后随机分配将CPU给进程。

  • 相关阅读:
    每天一个Linux指令--httpd
    每天一个Linux指令--alias和unalias
    每天一个Linux指令--adduser
    每天一个Linux指令--ls
    VScode 配置c/c++环境(结合各大网站的blog和官方文档)
    关于大数组定义为全局变量和内部变量的一些区别
    关于simplememory theme的设置和感想
    第一次训练赛感受和题解
    短期目标-1
    家事杂谈
  • 原文地址:https://www.cnblogs.com/Mryang123/p/8885344.html
Copyright © 2020-2023  润新知