码迷,mamicode.com
首页 > 其他好文 > 详细

计算机基本原理

时间:2020-03-04 14:50:28      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:实现   逻辑   时间片   封装   包含   依次   多个   系统资源   语言   

操作系统基本原理

计算机的基本介绍

五大硬件: - 主板:固化(寄存器,是直接和cpu进行交互的一个硬件) - CPU:中央处理器:计算(数字计算和逻辑计算)和控制(控制所有的硬件协调工作) - 存储:硬盘、内存 - 输出设备 - 输入设备 > 早期计算机以计算为核心,现代计算机以存储为核心

操作系统

操作系统是一个可以操作硬件的软件

  • 分类:
    • windows系统:微软单独开发,早期单用户多任务,现在也是多用户多任务
    • unix系统:多用户多任务
    • dos系统:纯编程系统,没有图形化界面,单用户单任务
  • 发展:
    • 人工时代:穿孔卡带,每个人都能在一段时间内独享计算机的所有资源
    • 脱机时代:完全将人和及其隔离开来
    • 单道批处理系统:内存中只允许存放一道作业
    • 多道批处理系统:内存中只允许存放多道作业
    • 分时系统:将cpu的执行划分时间片,每个程序以时间片为单位去执行
    • 时时系统:一般比较少见,主要用于军事和工业生产上

    无论什么时候,操作系统的目标总是:让用户用起来更加的轻松,高可用、低耦合

  • 作用
    • 封装所有的硬件接口,让各种用户使用电脑更加的轻松
    • 对计算机内所有的资源进行合理的调度和分配,这里需要特别注意锁机制
  • 进程的相关理论
    • 每一个进程都会分配到一个唯一的进程号PID,进程在内存上执行。
    • 分类:
      • 计算中正在运行的程序是进程,但是程序本生不是进程
      • 程序执行过程中的指令、数据等的集合,例如pycharm下执行的server.py文件,pycharm是父进程、server.py执行是子进程
      • 程序执行的过程

      进程是一个动态的概念s

    • 进程的组成部分
      • 代码段
      • 数据段
      • PCB:进程管理控制,针对的是操作系统,方便操作系统对进程进行管理和调度
    • 进程的特征:
      • 动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生和动态消亡的。kill PID用于杀死进程。当父进程被杀死后子进程可能就会成为孤儿进程。
      • 开发性:任何进程可以和其他的进程一同开发执行
      • 独立性:进程是一个独立运行的基本单位,同时也是系统资源分配和调度的独立单位
      • 异步性:由于进程间的相互制约,使得进程具有执行的间断性,即进程间按照各自独立的、不可预见的速度向前推进
      • 结构特征:进程由代码段、数据段和PCB组成

      多个不同的进程可以包含相同的程序:一个程序在不同的进程集里就构成不同的进程,得到不同的结果。但在执行过程中,程序不能改变。

    • 进程的基本状态
      • 就绪状态:已经获得运行所需要的所有资源,除了处理机(CPU)
      • 执行状态:已经获得了所有的资源包括CPU,处于运行状态
      • 阻塞状态:因为各种原因,进程放弃了CPU,导致进程无法执行,此时进程处于内存中,等待继续获取CPU
      • 挂起状态:因为各种原因,进程放弃了CPU,导致进程无法继续执行,此时进程被剔出内存,剥夺部分或者所有的资源,即使获得CPU也无法执行。

      python中提供的multiprocessing模块进行进程方面的操作,python解释器必须通过系统来管理进程。

    • 进程的调度原则
      • 先来先服务
      • 短作业优先
      • 时间片轮转:基本的思路是让每一个进程在就绪队列中的等待时间时间和享受服务的时间成比例
      • 多级反馈队列:把需要执行的程序划分为多个优先级不同的的等级,从优先级最高的级别开始依次往优先级最低的级别执行
  • 并行和并发
    • 并行:两件或者多件事情在同一时间点执行,同一时间同时执行,多核CPU
    • 并发:两件或者多件事情在同一时间间隔内同时执行,在同一时间的间隔内分批次执行,单核CPU

    并行的效率比并发效率更高,单核CPU无法实现并行,只有多和可以执行

语言的发展史

计算机识别的是二进制语言

  • 机器语言:早期语言,直接和计算机打交道
  • 汇编语言
  • 高级语言
    • 面形过程语言:C
    • 面向对象语言:C++、Python、JAVA、php等

语言无法直接调用计算机上的资源,需要通过操作系统来实现

计算机基本原理

标签:实现   逻辑   时间片   封装   包含   依次   多个   系统资源   语言   

原文地址:https://www.cnblogs.com/ddzc/p/12409128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!