• day32——进程、操作系统


    day32

    进程的基础

    程序

    一堆静态的代码文件

    进程

    一个正在运行的程序进程。抽象的概念

    • 被谁运行?
      • 由操作系统操控调用交于CPU运行

    操作系统

    • 管理控制协调计算机中硬件与软件的关系
    • 操作系统的作用?
      • 如果没有操作系统:你们在开发软件
      • 第一层:对硬件(CPU,内存,磁盘等等)协调,调用
      • 第二层:如何调用各种接口,去编程
    第一个作用

    将一些对硬件操作的复杂丑陋的接口,变成简单美丽的接口。例:open函数

    第二个作用

    多个进程抢占一个(CPU)资源时,从操作系统会将你的执行变得合理有序

    • 阻塞:input、read、write、sleep、recv、accept、sendto、recvfrom...

    操作系统的发展史

    最早出现的计算机:

    算盘

    电子类的计算机发展史:
    • 第一代计算机(1940~1955)

      在大学里出现了机房,想使用计算机必须预约

      先连接调配各个硬件,1.5小时,真空管,然后再插上程序调试,效率低

      • 优点:个人独享整个计算机资源
      • 缺点:
        • 硬件调试插线,耗时
        • 所有人都是串行执行
    • 第二代计算机(1955~1965)

      磁带存储——批处理系统

    • 优点

      • 程序员不用亲自对硬件进行插线操控,效率提高
      • 可以进行批量处理代码
    • 缺点

      • 程序员不能独自使用计算机
      • 你的所有程序还是串行
    • 第三代计算机(1955~1965)

      集成电路,多道程序系统

      大背景:

      1、集成电路:把所有的硬件变小,线路板

      2、将两套不同的生产线合并成一条生产线

      技术上的更新:多道技术

      • 空间上的复用:

      ​ 将内存分区域,一个内存可以同时加载多个进程

      • 时间上的复用:

      ​ 实现将cpu在多个进程之间来回切换,并且保留状态

      几乎所有的程序都有IO阻塞

      洗衣服:10分钟 50分钟

      烧水: 5分钟 10分钟

      做饭:15分钟 5分钟

      同时加载到内存3个任务,3个进程,每个进程都有阻塞情况,只要cpu运行一个进程时,遇到IO阻塞立马会切换,长时间占用cpu也会切换

      提升效率,最大限度的使用cpu

      如果是一个IO密集型进程,来回切换提升效率

      如果是一个计算密集型,来回切换降低效率

      第三代计算机广泛采用了必须的保护硬件(程序之间的内存彼此隔离)之后,第三代计算机应用而生:

      每个人占用计算机的时间有限的,

      多人(少于10个)共同使用一个计算机主机

    • 第四代计算机:至今

    进程的理论

    串行:所有的任务一个一个的完成

    并发:一个cpu完成多个任务,看起来像是同时完成

    并行:多个cpu执行多个任务,真正的同时完成

    阻塞:cpu遇到IO就是阻塞

    非阻塞:没有IO,就叫非阻塞

    1、程序:一堆静态文件

    2、一个正在执行的程序任务,一个进程

    3、一个程序能否开启多个进程?可以

    4、进程的创建

    • 一个子进程必须依赖于一个主进程才可以开启

    • 一个主进程可以开启多个子进程

      • unix:fork创建子进程

        unix(linux,mac):创建一个子进程会完完全全复制一个主进程所有的资源,初始资源不变

      • windows:操作系统调用CreateProcess处理进程的创建

        windows:创建一个子进程,会copy主进程所有的资源,但是会改变一些资源

    • 进程的状态

  • 相关阅读:
    C#面向对象(二)之抽象类实现多态
    JavaWeb 学习0010-今日问题 2016-12-3
    JavaWeb 学习008-今日问题(非空验证尚未解决) 2016-12-2
    JavaWeb 学习007-4个页面,5条sql语句(添加、查看、修改、删除)2016-12-2
    JavaWeb 学习006-4个页面,5条sql语句(添加、查看、修改、删除)
    JavaWeb 学习005-4个页面,5条sql语句(添加、查看、修改、删除)
    JavaWeb 学习004-增删改查的编写
    JavaWeb 学习003-简单登录页面功能实现
    JavaWeb 学习001-登录页面-Servlet
    JavaWeb 学习001-登录页面
  • 原文地址:https://www.cnblogs.com/NiceSnake/p/11385881.html
Copyright © 2020-2023  润新知