zoukankan      html  css  js  c++  java
  • 操作系统

    操作系统管理处理机、存储器、文件、设备,是用户和硬件之间的接口。对用户而言不需要直接操作硬件,操作系统提供接口有两种,命令接口和程序接口。

    我们来说以前的,最开始的是没有操作系统,人工操作,使用人工把程序装入,运行,这样因为人工输入速度太慢,而且容易错,还需要一个人占用,资源利用低,所以后来才做操作系统。

    操作系统本来做的只是把程序读进去运行,开始是单道操作系统,批处理系统。批处理就是执行完一个作业就接着下一个作业,在执行不能干预。单道就是每次只能在内存放一个程序,一次运行一个程序。

    内存在之前很贵,所以内存放的程序只有一个,他可以随意操作任何内存,当然操作了操作系统的就会造成操作系统错误,一旦错误只会影响程序,因为操作系统可以通过重启机器来得到。所以没有保护操作系统的内存。

    单道批处理可以有效解决人工I/O和CPU的速度相差,不过在程序运行后,CPU需要等待很慢的I/O把程序读进来或输出。

    为了解决CPU等I/O,就有多道操作系统,多道就是在内存可以放多个程序,并这些程序交替在CPU运行,如果一个程序I/O就会执行别的程序,这样能比原来快,但是I/O操作时间长还是没有用。

    多道操作系统出现问题就是原本单道操作系统可以做的是全部内存,随意。但是现在只能使用一部分内存了,所以这样就出现一些新的要解决,我们后面会说一些内存分配、置换方法。

    因为批处理系统不能人工干预,所以后来有了分时操作系统,这个系统把CPU分为多个时间,一个时间就执行一个程序,所以能和用户交互,这样的系统在Win10也是这样,不过win10是把图形层主要给GPU操作,并且有了很好地图形,当然命令行也有,可以使用Bash实在好。

    实时操作系统也是为了能在某个时间限制内完成某些紧急任务而不需时间片排队,诞生了实时操作系统。这里的时间限制可以分为两种情况:如果某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为硬实时系统。例如,飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。如果能够接受偶尔违反时间规定,并且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统、银行管理系统。

    网络操作系统把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各个计算机之间的互相传送数据。网络操作系统最主要的特点是网络中各种资源的共享以及各台计算机之间的通信。

    分布式计算机系统是由多台计算机组成并满足下列条件的系统:系统中任意两台计算机通过通信方式交换信息;系统中的每一台计算机都具有同等的地位,即没有主机也没有从机; 每台计算机上的资源为所有用户共享;系统中的任意若千台计算机都可以构成一个子系统,并且还能重构;任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。用于管理分布式计算机系统的操作系统称为分布式计算机系统。该系统的主要特点是:分布性和并行性。分布式操作系统与网络操作系统本质上的不同之处在于分布式操作系统中,若干台计算机相互协同完成同一任务。

    现在分这些其实没有用,因为我们要考试,所以我把我记下的发出来,存在一些主观性,如果看到我写错了请帮我指出来,或关闭浏览器,不要因此发布不良言论。

    进程

    我们之前说了我们的操作系统运行软件,那么软件是不是程序,其实在运行我们把运行程序叫进程。

    在同时运行多个程序,我们需要规定程序的内存有多少和程序的状态,我们需要把不同运行程序分开,我们就用进程。

    • 进程是程序的一次执行
    • 进程是一个程序及其数据在处理机上顺序执行时发生活动
    • 进程是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的独立单位

    所以我们可以说进程和程序是不同,当然后面有线程,一个进程有多个线程。

    线程

    假如我们的程序是可以输入、可以计算、可以把计算结果显示,那么他如何同时做多件事,其实他在进程里面创建了多个线程,线程其实和进程可以理解相同,只是线程切换比进程快。

    创建进程就是创建PCB,那么PCB是为了使参与并发执行的程序(含数据)能独立地运行,必须为之配置一个专门的数据结构,称为进程控制块(Process Control Block, PCB)。

    创建线程就是相当进程开启新的函数,进程的所有线程共享内存单元,操作系统所有进程都有独立内存单元,一旦进程访问其他进程的内存单元就会造成修改,当然很多程序都可以修改其他进程。

    进程状态有

    1) 运行状态:进程正在处理机上运行。在单处理机环境下,每一时刻最多只有一个进程处于运行状态。

    2) 就绪状态:进程已处于准备运行的状态,即进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行。

    3) 阻塞状态,又称等待状态:进程正在等待某一事件而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即使处理机空闲,该进程也不能运行。

    4) 创建状态:进程正在被创建,尚未转到就绪状态。创建进程通常需要多个步骤:首先申请一个空白的PCB,并向PCB中填写一些控制和管理进程的信息;然后由系统为该进程分配运行时所必需的资源;最后把该进程转入到就绪状态。

    5) 结束状态:进程正从系统中消失,这可能是进程正常结束或其他原因中断退出运行。当进程需要结束运行时,系统首先必须置该进程为结束状态,然后再进一步处理资源释放和回收等工作。

    这里写图片描述

    短进程优先

    处理机调度和死锁

    死锁:
    - 互斥条件
    - 不剥夺条件
    - 请求和保持条件
    - 循环等待

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

  • 相关阅读:
    基于LR的新闻文本分类
    NLTK最详细功能介绍
    11 Spark案例
    自然语言处理TF-IDF实践Demo
    NLP模型
    数据仓库
    SVN
    【E-26】ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '/opt/miniconda3/lib/python3.7/site-packages/mistune-0.8.4.dist-info/METADATA'
    【ML-7-2-1】聚类算法-KNN实践
    【E-25】ValueError: day is out of range for month
  • 原文地址:https://www.cnblogs.com/lindexi/p/12087554.html
Copyright © 2011-2022 走看看