操作系统

基础篇

多道程序设计

  • 早期批处理系统只能一次处理一个任务,多道程序设计可以让计算机一次处理多个任务
  • 多道程序设计是指在计算机内存中同时存放多个程序
  • 多道程序在计算机的管理程序下相互穿插运行

操作系统概览

  • 是管理计算机硬件和软件资源的计算机程序
  • 是管理硬件、提供用户交互的软件系统
  • 通过管理配置内存决定资源供需顺序控制输入输出设备等来管理
  • 提供让用户和系统交互的操作界面

基本功能

  • 操作系统统一管理着计算机资源

    • 处理器资源
    • 存储器资源
    • IO设备资源
    • 文件资源
  • 操作系统实现了对计算机资源的抽象

    IO设备管理软件,提供读写接口 -->> 用户无需面向硬件接口编程

    比如:文件管理软件,提供操作文件接口

  • 提供了用户与计算机之间的接口

    • 图像窗口形式
    • 命令形式
    • 系统调用形式

相关概念

  • 并发性

    并行?并发?

    并行是指两个或多个事件可以在同一个时刻发生

    并发是指两个或多个事件可以在同一个时间间隔发生

    多道程序设计:
    对于单处理器来说,程序都是并发进行的。

  • 共享性

    操作系统中的资源可供多个并发的程序共同使用 -->> 资源共享

    根据属性可分为两种方式

    • 互斥共享形式

      当资源被程序A占用时,其他程序想使用的话只能等待进程A结束后才能使用

      比如:打印机

    • 同时访问形式

      某种资源在一段时间内并发地被多个程序访问

      这种“同时“是宏观的,从宏观去看该资源可以被同时访问

      比如:硬盘

  • 虚拟性

    把一个物理实体转变为若干个逻辑实体

    物理实体是真是存在的,逻辑实体是虚拟的

    虚拟的技术主要有时分复用技术空分复用技术

    • 时分复用技术

      资源在时间上进行复用,不同程序并发使用

      多道程序分时使用计算机的硬件资源

      提高资源的利用率

      • 虚拟处理器技术

        借助多道程序设计技术

        为每个程序建立进程

        多个程序分时复用处理器

      • 虚拟设备技术

        物理设备虚拟为多个逻辑设备

        每个程序占用一个逻辑设备

        多个程序通过逻辑设备并发访问

    • 空分复用技术

      实现虚拟磁盘、虚拟内存等

      提高资源的利用率,提升编程效率

      • 虚拟磁盘

        物理磁盘虚拟为逻辑磁盘(比如一个硬盘可以虚拟为C盘D盘…

        使用起来更加安全、方便

      • 虚拟内存技术

        在逻辑上扩大程序的存储容量

        大大提升编程效率

  • 异步性

    在多道程序环境下、允许多个进程并发执行

    进程在使用资源时可能需要等待或放弃

    进程以走走停停的形式推进

进程实体

  • 为什么需要进程?

    • 进程是系统进行资源分配和调度的基本单位
    • 进程作为程序独立运行的载体保障程序正常执行
    • 进程的存在使操作系统资源的利用率大幅提升
  • 进程的实体

主存中的进程形态

进程控制块(process control block) PCB

  • 标识符

    唯一标记一个进程,用于区别其他进程

    比如:进程ID 就是常见的标识符

  • 状态

    标记进程的进程状态,如运行态、阻塞状态

  • 程序计数器

    进程即将被执行的下一条指令的地址

  • 内存指针

    程序代码、进程数据相关指针

  • 上下文数据

    进程执行时处理器存储的数据

  • IO状态信息

    被进程IO操作所占用的文件列表

  • 记账信息

    使用处理器时间、时钟数总和等

    对调试或者获取状态都是很有用的

可以分为四类:

  • 进程标识符

  • 处理机状态

  • 进程调度信息

  • 进程控制信息

    进程控制块(PCB)

  • 用于描述和控制进程运行的通用数据结构

  • 记录进程当前状态和控制进程运行的全部信息

  • PCB使得进程是能够独立运行的基本单位

  • PCB是操作系统进行调度经常会被读取的信息

  • PCB是常驻内存的,存放在系统专门开辟的PCB区域内

进程与线程

进程(Process) 线程(Thread)

一个进程可以有一个或多个线程

线程是操作系统进行运行调度最小单位

进程是系统进行资源分配和调度基本单位

(操作系统对进程的调度实际上是对进程中的线程的调度)

线程包含在进程中,是进程中实际运行工作的单位

一个进程可以并发多个线程,每个线程执行不同的任务

进程的线程共享进程资源

五状态模型

就绪、阻塞、执行

创建、终止

  • 就绪状态

    • 当进程被分配到除了CPU以外所有必要的资源后

    • 只要再获得CPU的使用权就可以立即运行

    • 其他资源都准备好、只差CPU资源的状态为就绪状态

    • 在一个系统中多个处于就绪状态的进程通常排成一个队列

  • 执行状态

    • 进程获得CPU,其程序正在执行称为执行状态
    • 在单处理器机中,在某个时刻只能有一个进程处于执行状态
  • 阻塞状态

    • 进程因某种原因如:其他设备未就绪而无法继续执行

    • 从而放弃CPU的状态成为阻塞状态

      比如:请求打印机未就绪而无法执行

  • 状态间如何切换的呢?

    • 就绪 <----> 执行

      当进程发生进程调度的时候就会从就绪态转为执行态

      当分配给进程的CPU时长用完后就会从执行态转为就绪态

    • 阻塞 <----> 执行

      当执行状态发送IO请求的时候就有可能转为阻塞状态

      当某个进程在执行的时候需要IO设备,但此时IO设备还没有准备好,那么这个进程就有可能调出CPU变成阻塞状态

    • 阻塞 <----> 就绪

      当IO设备准备完成后,就会从阻塞状态转为就绪状态

      IO设备准备好后会向进程发送一个中断来唤醒进程,从而进入就绪状态

  • 创建状态

创建进程时拥有PCB但其他资源尚未就绪的状态称为创建状态

操作系统提供fork函数接口创建进程

  • 终止状态


进程结束由系统清理或者归还PCB的状态称为终止状态

进程同步

为什么需要进程同步?

单从生产者程序或消费者程序看是没问题的

两者并发执行时就可能出错

筷子 ——>> 临界资源

哲学家 ——>> 进程
根源问题: 彼此间没有通信 ——>> 需要进程间的同步

  • 进程同步的意义:

    • 对竞争资源在多进程间进行使用次序的协调
    • 使得并发执行的多个进程之间可以有效使用资源和相互合作

进程间同步的原则:

临界资源:临界资源指的是一些虽作为共享资源却又无法同时被多个线程共同访问的共享资源。当有进程在使用临界资源时,其他进程必须依据操作系统的同步机制等待占用进程释放该共享资源才可重新竞争使用共享资源。

四个原则:

  • 空闲让进:资源无占用,允许使用
  • 忙则等待:资源有占用,请求进程等待
  • 有限等待:保证有限等待时间能够使用资源
  • 让权等待:等待时,进程需让出CPU

进程间同步的方法:

  • 消息队列
  • 共享存储
  • 信号量

线程同步

  • 当多个线程并发使用进程资源时,会发生什么?

    • 也会发生生产者问题和哲学家吃饭问题
    • 所以进程内多线程也需要同步
  • 线程同步的方法?

    • 使用互斥量

      保证多线程可以互斥使用临界资源的一个锁

    • 读写锁

      为了应对多读少些或者多写少读的情况

    • 自旋锁

    • 条件变量

Linux的进程管理

Linux进程的相关概念

进程的类型
  • 前台进程

    终端shell

    前台进程就是就有终端,可以和用户交互的进程

  • 后台进程

    与前台进程相对,没有占用终端的就是后台进程

    后台程序基本不和用户交互,优先级比前台进程低

    将需要执行的命令以&符号结束就会启动后台进程

  • 守护进程(daemon)

    是特殊的后台进程

    很多守护进程在系统引导的时候启动,一直运行直到系统关闭。

    Linux有很多典型的守护进程:进程名字以d结尾的一般都是守护进程

    比如:crond 定时任务的守护进程

    ​ httpd HTTP服务的守护进程

    ​ sshd 用ssh登陆时的守护进程

    ​ mysqld 数据库的守护进程

进程的标记
  • 进程ID

    进程的唯一ID,每个进程拥有不同的ID

    表现为非负整数,最大值由操作系统限定

  • 进程的状态标记

【计算机基础】 操作系统总结(未完)相关推荐

  1. 18大学计算机基础,最新大学计算机基础试题及答案完整版(18页)-原创力文档...

    大学计算机基础试题及答案完整版 1 大学计算机基础试题及答案完整版 1 2 2 一 .单选题 3 一 .单选题 3 1.完整的计算机系统由 (C )组成. 4 1.完整的计算机系统由 (C )组成. ...

  2. 计算机大学基础知识,大学计算机基础知识点解析(完整版).doc

    大学计算机基础知识点解析(完整版) 计算机应用能力强化培训知识手册 基本要求 1.具有使用微型计算机的基础知识及能力 2.掌握微型计算机系统的组成和组成部分的功能以及计算机的工作过程. 3.掌握操作系 ...

  3. 计算机基础——操作系统篇概览

    操作系统 1.os基础 操作系统基本概念:运行在计算机上的一种程序,管理计算机上的软件和硬件资源,包括进程,内存管理,硬件设备管理等(内核负责). 系统调用:运行在用户态的程序需要调用系统态下的资源, ...

  4. 最高级的在线计算机,计算机基础知识笔试题完整版.doc

    计算机基础知识笔试题 1.第一台电子计算机使用的逻辑部件是(?D???). A.集成电路???? ???B.大规模集成电路?? ??C.晶体管????? ?D.电子管 2.微型计算机系统由(B)组成. ...

  5. 【音频播放】自制音频播放器—音视频基础概念,未完待续。。。

    近期用Electron制作了一个简易版客户端,未完待补充,重点在播放,引用凯教,先说几点.(图片禁止搬运,不得允许不准转载) 研究音频的数字化技术之前,必须对声音和图像的的物理性质有基本的了解. 如下 ...

  6. 计算机基础——操作系统

    作者简介:一名云计算网络运维人员.每天分享网络与运维的技术与干货.   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.操作系统 1.操作系统简介 2.操作系统的主要功 ...

  7. 智能手机操作系统大全-未完待续

    手机操作系统介绍 前言 Symbian.Windows Mobile.Palm OS.Linux为目前四大主流智能手机操作系统 中国智能手机系统平台市场份额中,Symbian占有整个智能手机系统平台市 ...

  8. 计算机基础------操作系统

    一.什么是操作系统 1)管理计算机软件和硬件资源的程序,是计算机的基石 2)本质是运行在计算机上的应用程序,运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件. 3)操作系统屏蔽 ...

  9. 虚拟机安装后的基础配置(未完待续)

    版本:Centos 6.10 虚拟机安装完成后,需要进行一些基础配置,才能进行操作. 1.安装xshell(可选),下一步安装即可. 2.安装xftp(可选,用于上传文件,如安装包等),下一步安装即可 ...

  10. 计算机基础--操作系统基础

    学习目标: 操作系统基础 学习背景: 针对面试,对自己以往学习过的操作系统基础知识做一个记录与梳理. 学习内容: 1. 进程与线程的本质区别.以及各自的使用场景. 2. 五种进程状态之间的转换. 3. ...

最新文章

  1. QT调用C#写的Dll
  2. php百分比乘加,用php简单实现加减乘除计算器
  3. 深度解析使用CSS单位px、em、rem、vh、vw、vmin、vmax实现页面布局
  4. 数字图像处理实验(15):PROJECT 06-02,Pseudo-Color Image Processing
  5. 8 分钟了解 Kubernetes
  6. foxmail邮箱怎么导入邮件_163企业邮箱登录后怎么导入联系人?
  7. hibernate中的id特殊属性hilo剖解(多用于继承关系)
  8. Nodejs如何自动重启
  9. 计算机应用基础图表填空,计算机应用基础填空题.doc
  10. c# npoi 公式不计算_高中数学最不容易,最难计算,全高中数学所有基础性质公式归纳...
  11. 从可视化模板,到数据仓库、数字化的资料,我整理并分享出来
  12. 了解PostCSS原理
  13. 极限学习机︱R语言快速深度学习进行回归预测
  14. 判断滚动条到底部的JS代码
  15. ViewController的生命周期你真的懂了吗?
  16. Python输出异常信息(行号)
  17. win10应用商店无法连接到服务器出错,解决win10应用商店无法登陆提示错误0x80070426的方法...
  18. C#开源组件之Word文件的操作:一
  19. JMeter 远程启动报错:java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
  20. mac 软件卸载后无法安装

热门文章

  1. js函数 every some map ()=a+b;
  2. pat根据中序遍历和先序遍历_算法题399:从前序与中序遍历序列构造二叉树
  3. 笔试题目1,欢迎留言评论
  4. git gui管理服务器配置文件,从 Git Gui 管理的Repository(库) 提交更改到 Bonobo服务器管理的Repository(库)...
  5. mysql主从授权_MySQL主从复制(10)读写分离授权多种方案
  6. android studio table居中代码_五个方法实例代码详解教你在CSS中实现垂直居中
  7. linux:Too Many Open Files(打开的文件过多)
  8. Mybatis 中使用CDATA
  9. Redirecting to binsystemctl start crond.service
  10. C语音的预处理,编译,汇编,链接过程分析