计算机操作系统

计算机系统进程模型概念

℡╲_俬逩灬. 提交于 2020-01-25 16:24:01
计算机系统进程概念 以下进程概念内容均来自: https://www.bilibili.com/video/av16710919?p=13 、 https://blog.csdn.net/qq_40421919/article/details/85224864 与《Linux网络编程(第二版)》 首先,我们需要区分程序与进程: 狭义上说: 进程与应用程序的区别在于:应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中。而进程则是处于动态条件下由操作系统维护的系统资源管理实体。 他们之间最大的不同之处在于(狭义上): 进程是动态的,而程序是静态的; 进程有一定的生命期,而程序时是指令的集合,本身并无"运动"的含义。没有建立进程的程序不能作为1个独立单位操作系统的认可。 一个进程只能对应一个程序,一个程序可以对应多个进程。进程和程序的关系就像戏剧和剧本之间的关系。 广义上说: 进程从用户角度来看时应用程序的一个执行过程。从操作系系统核心角度来看,进程代表的是操作系统的分配的内存,CPU时间片等资源的基本单位,是为正在运行的程序提供的运行环境。 好的,在大致区别进程和程序的不同后,我们来看看进程的相关来源与其相关知识: 来源: 早期的计算机中只支持单道程序( 单道程序设计 ),因为只有一个物理程序计数器,所以所有的程序是串行执行的,即A程序运行完成,B程序才能开始运行

计算机与操作系统与网络原理--3

谁说胖子不能爱 提交于 2020-01-25 12:17:03
冯诺依曼体系 将程序指令和数据一起存储的计算机设计概念结构 早期: 仅用于固定的程序运行. 例如: 只能运行文本处理程序 需要运行别的程序的话,需要更改程序结构,重新设计电路. 在组装成为计算机 冯诺依曼体系: 存储程序指令,设计通用电路. 结构 存储器 控制器 运算器 输入/输出设备 现代计算机都是冯诺依曼计算机 功能 能够把需要的程序和数据送至计算机中 长期记忆程序,数据,中间结果以及最终的运算结果的能力 具备算术,逻辑运算,数据传送等数据加工处理的能力 CPU = 运算器 + 控制器 CPU和存储器之间的速率无法调和.导致CPU空转,等待数据传输. 现代计算机结构 在冯诺依曼体系上发展而来 现代计算机将存储器纳入CPU核心. 是CPU的一部分. 存储器本质为 存储数据的介质. 慢速的存储介质为:磁带,硬盘. 而CPU则要求告诉的存储设备:比如内存,和寄存器. 来源: CSDN 作者: 路上^_^ 链接: https://blog.csdn.net/DXH9701/article/details/104082705

计算机操作系统实验:模拟进程状态转换程序

ε祈祈猫儿з 提交于 2020-01-22 08:08:32
实验:模拟进程状态转换程序 一、实验内容完成情况(请写明自己已完成的项目功能): 完成进程控制块结构体的编写 创建就绪队列、阻塞队列、运行队列、完成队列、挂起队列 初始化操作系统的原始进程:可静态设置也可动态添加 编写新建进程函数 系统开始调度 当前运行进程请求 I/O 事件 某进程 I/O 完成 时间片到期 其他阻塞事件 挂起 完成先来先服务算法 完成优先级调度算法 完成时间片轮转算法 查看当前所有进程的 PCB 信息 查看当前时刻就绪队列和阻塞队伍信息 查看当前正在运行的进程信息 计算当前时刻,每个进程的周转时间。 三、模块说明及相应代码: 1、 初始化操作系统(请文字写明思路并给出核心代码): 1) 创建PCB的结构体: 思路:根据实验要求完成结构体的创建 代码: typedef struct node { char name[20]; //进程名 int id = 0; //进程ID int priority = 0; //优先级 int ArriTime = 0; //进程到达时间 int serviceTime=0; //进程总需要时间 int needTime = 0; //还需要运行时间 int CPUTime = 0; //已用CPU时间 char state[20]; //进程状态 1.Ready 2.Run 3.Wait 4.Finish int

计算机操作系统-内存管理

老子叫甜甜 提交于 2020-01-20 10:27:13
虚拟内存 虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。 为了更好的管理内存,操作系统将内存抽象成地址空间。每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。当程序引用到不在物理内存中的页时,由硬件执行必要的映射,将缺失的部分装入物理内存并重新执行失败的指令。 从上面的描述中可以看出,虚拟内存允许程序不用将地址空间中的每一页都映射到物理内存,也就是说一个程序不需要全部调入内存就可以运行,这使得有限的内存运行大程序成为可能。例如有一台计算机可以产生 16 位地址,那么一个程序的地址空间范围是 0~64K。该计算机只有 32KB 的物理内存,虚拟内存技术允许该计算机运行一个 64K 大小的程序。 分页系统地址映射 内存管理单元(MMU)管理着地址空间和物理内存的转换,其中的页表(Page table)存储着页(程序地址空间)和页框(物理内存空间)的映射表。 一个虚拟地址分成两个部分,一部分存储页面号,一部分存储偏移量。 下图的页表存放着 16 个页,这 16 个页需要用 4 个比特位来进行索引定位。例如对于虚拟地址(0010 000000000100),前 4 位是存储页面号 2,读取表项内容为(110 1)

看完这个,你就知道Docker是什么了

倾然丶 夕夏残阳落幕 提交于 2020-01-16 01:56:11
在开始谈docker容器之前,先需要清楚什么是虚拟化,什么是容器 虚拟化 如果要⽤简单的语句来阐述虚拟化技术的话,那么可以这么解释: 虚拟化技术是⼀种将计算机物理资源进⾏抽象、转换为虚拟的计算机资源提供给程序使⽤的技术。 这⾥所指的计算机资源,就包括了 CPU 提供的运算控制资源,硬盘提供的数据存储资源,⽹卡提供的⽹络传输资源等。 为跨平台而生 计算机发展早期,各类计算机平台,计算资源所提供的接口都不一样,调用十分混乱,没有像今天一样有相对统一的标准。由于为兼容不同的平台写各种各样的兼容代码,于是虚拟技术运应而生。虚拟化技术通过本身适配不同平台的硬件,抽象成统一的接口,从而实现程序的跨平台。 将虚拟化技术用于资源管理 在虚拟化技术发展的过程中,人们又发现了虚拟化技术的另外一个用途:资源管理。 因为虚拟化技术本来就是对计算机物理资源的抽象转换成虚拟的计算机资源,这样就很容易在这里对计算机资源进行修改,比如可以告诉程序这台计算机只有4G内存,而无论计算机是有16G还是32G,程序都会按照虚拟机告诉它的4G内存来进行使用。 通过虚拟化技术管理计算机资源的方式,不当能让我们对计算机资源的控制更加灵活,而且还能极大的提交计算机资源的使用率。 看到这可能会有些迷惑,虚拟化技术本身就要耗费部分的计算机资源,怎么还能产生1+1>2的效果? 其实这里指的是计算机的使用率,而非计算机的占用率

计算机与操作系统简介

南楼画角 提交于 2020-01-13 04:08:05
阅读目录   手工操作 —— 穿孔卡片   批处理 —— 磁带存储和批处理系统   多道程序系统   分时系统   实时系统   通用操作系统   操作系统的进一步发展   操作系统的作用 手工操作 —— 穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。   程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。 手工操作方式两个特点:   (1)用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。   (2)CPU 等待手工操作。CPU的利用不充分。 20世纪50年代后期,出现 人机矛盾 :手工操作的慢速度和计算机的高速度之间形成了尖锐矛盾,手工操作方式已严重损害了系统资源的利用率(使资源利用率降为百分之几,甚至更低),不能容忍。唯一的解决办法:只有摆脱人的手工操作,实现作业的自动过渡。这样就出现了成 批处理 。 批处理 —— 磁带存储   批处理系统:加载在计算机上的一个 系统软件 ,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这作业包括程序、数据和命令)。 联机批处理系统  

计算机与操作系统

旧城冷巷雨未停 提交于 2020-01-13 04:05:50
概念 如图1-1给出了一个逻辑上的简化视图,图的底部是硬件,硬件包括芯片、电路板、磁盘、键盘、显示器以及类似的设备,在硬件的顶部是软件。 多数计算机有两种运行模式:内核态和用户态。软件中最基础也是最核心的部分是操作系统,它运行在内核态,在这个模式中,操作系统具有对所有硬件的安全访问权,可以执行机器能够运行的任 何指令;软件的其余部分运行在用户态下,只使用机器指令中的一个子集;用户接口程序如GUI处于用户态程序中最低层次,允许用户使用或运行其他程序,诸如web浏览器等。 如图1-1所示,操作系统运行在裸机之上,为所有软件提供基础的运行环境。 操作系统与普通软件区别 1、用户不喜欢某个普通软件,如XX阅读器,他可以换或者自己写一个;操作系统是很难编写的,操作系统源代码有500万行甚至更高数量级的。 2、操作系统更加大型、复杂、长寿;普通软件更加小型、简单、寿命周期短。 操作系统定义 操作系统定义:是一种运行在内核态的软件,是一组控制和管理计算机软硬件资源,同时为用户提供使用计算机应用程序的集合。 操作系统的两大基本职能:面向机器管理计算机;面向用户使用计算机。 主要两大作用:管理和使用计算机 主要特征:并发性;共享性;虚拟性和不确定性 操作系统的主要功能有:进程管理;存储管理;设备管理;文件管理,用户接口等等。 计算机与操作系统的发展史 第一台真正纯机械的数字计算机

运维岗位学习历程

依然范特西╮ 提交于 2020-01-13 01:20:20
面经链接: https://www.nowcoder.com/discuss/142474 运维岗位要求的知识面比较广,操作系统、计算机网络、linux、数据库、数据结构、常见的运维工具等等 1. 操作系统 2. 计算机网络 3. linux 4. 数据库 5. 数据结构 6. 算法设计与分析 7. 常见的运维工具 1. 系统监控工具 htop命令==》安装: 默认支持图像界面的鼠标操作; 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完成的命令行; 可以直接通过F9杀死进程。 $yum -u install htop (需要epel) 2. 多功能系统信息统计工具 dstat命令==》查看支持插件$ dstat --list # 常用参数 -l: 显示负载均衡统计量 相当于 uptime -m: 显示内存使用率(used,buffer,cache,free) -r: 显示I/0统计(read, write) -s: 显示交换分区使用情况(used, free) -t: 显示当前时间 --fs: 显示文件系统统计数据(files,inodes) --socket:显示网络统计数据(tot,tcp,udp,raw,frg) --tcp:显示常用的TCP统计(lis,act,syn,tim,clo) --udp: 显示监听的UDP接口及其当前用量的一些动态数据(lis,act)

计算机操作系统-银行家算法-C语言

 ̄綄美尐妖づ 提交于 2020-01-11 03:28:31
银行家算法 给进程分配资源,是系统处于安全状态;当进程向系统申请资源时,系统要预判分配资源后是否还存在安全状态,如果存在则分配,否则不分配。 先看效果再附源码 运行结果 源代码 # include <stdio.h> # include <stdlib.h> # include <string.h> # define N 10 struct POC { char JobName ; //进程名 int Allocation [ 3 ] ; //已拥有资源数 int Need [ 3 ] ; //还需求资源数 int Pass ; //是否已经过 1是 0否 } job [ N ] = { { 'A' , 0 , 1 , 0 , 7 , 4 , 3 , 0 } , //3:7 5 3 { 'B' , 2 , 0 , 0 , 1 , 2 , 2 , 0 } , //1:5 3 2 { 'C' , 3 , 0 , 2 , 6 , 0 , 0 , 0 } , //4:10 5 5 { 'D' , 2 , 1 , 1 , 0 , 1 , 1 , 0 } , //2:7 4 3 { 'E' , 0 , 0 , 1 , 4 , 3 , 1 , 0 } //5:10 5 6 } ; //3 3 2 int Number = 5 , SafetySequenceNumber ; int

操作系统的发展史

别说谁变了你拦得住时间么 提交于 2020-01-10 17:57:04
操作系统的发展史 一、手工操作———穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。 手工操作方式两个特点: 用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。 CPU 等待手工操作。CPU的利用不充分。 20世纪50年代后期,出现 人机矛盾 。:手工操作的慢速度和计算机的高速度之间形成了尖锐矛盾,手工操作方式已严重损害了系统资源的利用率(使资源利用率降为百分之几,甚至更低),不能容忍。唯一的解决办法:只有摆脱人的手工操作,实现作业的自动过渡。这样就出现了成 批处理 。 二、批处理——磁带存储 2.1 联机批处理系统 [ ]( http://ww 主机与输入机之间增加一个存储设备——磁带,在运行于主机上的监督程序的自动控制下,计算机可自动完成:成批地把输入机上的用户作业读入磁带,依次把磁带上的用户作业读入主机内存并执行并把计算结果向输出机输出。完成了上一批作业后,监督程序又从输入机上输入另一批作业,保存在磁带上,并按上述步骤重复处理。