大连设计网站公司,注册万维网网站,网站建设与程序编辑,ppt模板免费下载第一ppt文章目录 编程语言
程序
所谓程序#xff0c;就是 一组指令 以及 这组指令要处理的数据。狭义上来说#xff0c;程序对我们来说#xff0c;通常表现为一组文件。
程序 指令 指令要处理的数据。 编程语言发展
机器语言#xff1a;0、1 二进制构成汇编语言#xff1a;… 文章目录 编程语言
程序
所谓程序就是 一组指令 以及 这组指令要处理的数据。狭义上来说程序对我们来说通常表现为一组文件。
程序 指令 指令要处理的数据。 编程语言发展
机器语言0、1 二进制构成汇编语言用一些容易理解和记忆的字母 单词 代替机器指令高级语言C、C、Java、Python 等
对比
汇编语言代码 -- 指令 --CPUC 代码 -- 编译 -- 指令 --CPUJava代码 -- -- JVM -- 编译 -- 指令 --CPU Java 运行在 JVM 上 JVM 针对不同的操作系统做了不同的实现对 JAVA 程序员提供了统一的调用方式 操作系统Operating System
操作系统是一组管理计算机资源的软件的统称。每台电脑或手机等设备都会装一个操作系统。
目前常见的操作系统有Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。
操作系统的定位 操作系统的作用
对下硬件管理各种计算机设备比如鼠标、键盘、显示器等可以看到的与计算机连接的任何设备对上软件为应用程序提供一个稳定的运行环境对于有图形化界面的操作系统提供良好的人机交互界面文件管理
操作系统是如何管理运行中的程序 程序安装后在系统中是静态文件。 双击之后从磁盘加载到内存系统会创建一个与程序的进程这时程序就运行起来了。 每一个运行的程序在操作系统中都对应着一个进程。
进程分为用户执行的进程、前台进程、系统创建的进程、后台进程
进程
什么是进程/任务Process/Task
每个应用程序运行于现代操作系统之上时操作系统会提供一种抽象好像系统上只有这个程序在运行所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的进程可以说是计算机科学中最重要和最成功的概念之一。
进程是操作系统对一个正在运行的程序的一种抽象换言之可以把进程看做程序的一次运行过程
在操作系统内部进程是操作系统进行资源分配的基本单位。 先描述再组织进程
描述进程
进程控制块PCB Process Control Block
计算机内部要管理任何现实事物都需要将其抽象成一组有关联的、互为一体的数据。在 Java 语言中我们可以通过类/对象来描述这一特征。
每一个 PCB 对象就代表着一个实实在在运行着的程序也就是进程。
操作系统再通过数据结构例如线性表、搜索树等将 PCB 对象组织起来方便管理时进行增删查改的操作。
PCB 描述的 7 个属性
进程控制符 PID Process Identifier
也称为进程标识符是各进程的身份标识。
程序一运行系统就会自动分配给进程一个独一无二的PID。
进程中止后PID被系统回收可能会被继续分配给新运行的程序。 内存指针
当程序运行时操作系统先从磁盘加载程序文件到内存中在程序运行之前要在内存中分配一片有效的空间。在内存中的数据和指令最终被 CPU 读取和执行。
文件描述符表
当程序运行之后需要访问一些文件资源这时操作系统就负责给程序分配这些资源。
程序所需要的每个文件称为文件描述符多个文件描述符 合在一起就组成了文件描述符表类似于一个集合。
在 Linux 中的所有计算机设备网卡、硬盘、磁盘、外接设备都用文件的方式去描述。
默认每个程序运行时都会被分配 3 个文件描述符
- 标准输入System.in
- 标准输出System.out
- 标准错误System.error电脑上有百十个进程但是只有 16 个逻辑处理器即只可以同时处理 16 条指令 一个逻辑处理器并不是一次就把一个进程执行完而是一个进程执行一会儿就休息一会儿再去执行另一个进程不停的轮换执行。 由于 CPU 的频率很高轮换的速度也很快人察觉不到。 【并发编程】 并发在单个处理器上不停地轮换执行指令 “并行”在多个处理器上可以同时执行不同的指令 并行可以说是真正意义上的同时执行。 进程状态
运行状态当前在 CPU 上正在执行指令就绪状态排队中随叫随到随时可以在 CPU 上运行在 CPU 中一般不区分运行状态和就绪状态一般统称为就绪状态。阻塞状态当前进程不适合在 CPU 上执行。 进程优先级
哪个进程有更的大机会去 CPU 上运行它的优先级就越高。
进程的上下文
进程调度的过程中进程一会儿失去了 CPU一会儿又回到 CPU 上继续执行当回到 CPU 之时要沿着上次的状态继续执行而不是从头开始
失去 CPU 时进程的中间值从寄存器保存到内存中存档回到 CPU 时进程的中间值从内存中读回到寄存器中读档进程的中间值存储当前执行的指令、下一条指令、中间产生的一些变量
进程的记账信息
统计功能统计每个进程在 CPU 上运行了多久哪些进程很长时间没有在 CPU 上运行了。
进程的组织方式
通过一个双向链表组织 PCB
创建一个进程就是把 PCB 加入到链表中销毁一个进程就是把 PCB 从链表中删除查看所有的进程就是遍历双向链表
内存分配⸺内存管理Memory Manage
程序运行时会分配内存空间。 操作系统为了防止野指针使用了虚拟内存来规避上述现象。
通过使用内存管理单元Memory Management UnitMMU的方式来实现
进程间通信(Inter Process CommunicationIPC)
进程是操作系统进行资源分配的最小单位这意味着各个进程互相之间是无法感受到对方存在的这就是操作系统抽象出进程这一概念的初衷这样便带来了进程之间互相具备**“隔离性Isolation”**。
但现代的应用要完成一个复杂的业务需求往往无法通过一个进程独立完成总是需要进程和进程进行配合地达到应用的目的如此进程之间就需要有进行“信息交换”的需求。
进程间通信的需求就应运而生。 目前主流操作系统提供的进程通信机制有如下
管道共享内存文件网络信号量信号
其中网络是一种相对特殊的 IPC 机制它除了支持同主机两个进程间通信还支持同一网络内部非同一主机上的进程间进行通信。