操做系统— 操做系统概述

操做系统概述

1.操做系统作了什么

咱们编写这样一条C语言代码web

#include<stdio.h>

int main()
{
    puts("hello world");
    return 0;
}
  • 1.用户告诉操做系统执行此程序
  • 2.操做系统接收到指令,先去磁盘上找到此程序的相关信息,而后检查其类型是否为可执行文件;紧接着经过程序首部信息肯定代码和数据在可执行文件中的位置并计算出对应的磁盘块地址(pe,elf)
  • 3.操做系统新建立一个进程,并将helloworld执行文件映射到该进程结构,表示由该进程执行helloworld程序
  • 4.为helloworl程序设置CPU上下文环境,并跳到程序的开始处,准备执行该程序
  • 5.执行程序的第一条指令,发生缺页异常(由于程序在执行时,先要把程序的代码和数据读入内存中,CPU才能去执行,但此时helloworld的代码还在磁盘中,因此此时硬件机制会捕获出缺页异常,而且把控制权交给操做系统)
  • 6.操做系统管理着内存. 内存管理模块会分配一页空闲的物理内存,而且根据前面计算出的磁盘块地址,把helloworld程序的代码从磁盘读入内存,而后继续执行helloworld程序
  • 7.程序执行puts()函数 (系统调用),在显示器上写一字符串
  • 8.操做系统找到要将字符串送往的显示设备,一般设备是由一个进程控制的,因此操做系统将要输出的字符串送给该进程
  • 9.控制设备的进程会告诉设备的窗口它要显示字符串,窗口系统肯定这是一个合法的操做,而后将字符串转换成像素,将像素写入设备的存储映像区
  • 10.视频硬件将像素转换成显示器可接受的一组控制数据信号
  • 11.显示器解释信号,激发液晶屏
  • 12.最后,咱们在屏幕上看到了 “hello world”

image

但若是换一个角度来看算法

image2

2.操做系统的定义与做用

操做系统是计算机系统中的一个系统软件,是一些程序模块的集合–编程

  • 它们能以尽可能有效,合理的方式组织管理计算机的软硬件资源
  • 合理地组织计算机的工做流程,控制程序的执行并向用户提供各类服务功能
  • 使得用户可以灵活,方便地使用计算机,使整个计算机系统高效率运行

有效:系统效率,资源利用率 CPU利用率充足与否?I/O设备是否忙碌?windows

合理:各类软硬件资源的管理是否公平合理?架构

方便使用:用户界面,编程接口并发

操做系统的三个做用:svg

- 1.资源的管理者:有效函数

自底向上,操做系统是资源的管理者优化

硬件:CPU,内存,设备(I/O设备,磁盘,时钟,网卡)操作系统

软件:磁盘上的文件,各种管理信息

管理资源:

1>.跟踪记录资源的使用情况

2>.肯定资源分配策略–算法(动态分配策略)

3>.实时资源的分配和回收

从资源管理的角度:五大基本功能

  • 进程/线程管理

    进程线程状态,控制,同步互斥,通讯,调度

  • 存储管理

    分配/回收,地址转换,存储保护,内存扩充

  • 文件管理

    文件目录,文件操做,磁盘空间,文件存取控制

  • 设备管理

    设备驱动,分配回收,缓冲技术

  • 用户接口

    系统命令,编程接口

- 2.向用户提供各类服务:方便使用

OS是各类系统服务的提供者

从用户角度看,操做系统为用户提供了一组功能强大,方便易用的命令系统调用

- 3.对硬件机器的扩展:扩展能力

OS是硬件基础上的第一层软件. 与硬件相关的工做复杂,琐碎.而这些工做由操做系统去执行

在这里插入图片描述

操做系统在应用程序与硬件之间创建了一个等价的扩展机器(虚拟机)

对硬件抽象,提升可移植性;比底层硬件更容易编程

3.操做系统的主要特征

  • 1.并发

指处理多个同时性活动的能力,因为并发会引起不少问题:活动切换,保护,相互依赖的活动间的同步

单CPU下,宏观上:这些程序同时在执行.但微观上,任什么时候刻只有一个程序真正在执行,即这些程序实在CPU上轮流执行的

并行:是指多个不一样程序同时多个硬件部件上执行(多个CPU)

  • 2.共享

操做系统与多个用户的程序共同使用计算机系统中的资源(共享有限的系统资源).

操做系统要对系统资源进行合理分配和使用,资源在同一时间段内交替被多个进程所用

互斥共享:打印机

同时共享:(可重入代码,磁盘文件)

操做系统要作到资源分配的最优化,并保护资源

  • 3.虚拟

一个物理的实体映射为若干个对应的逻辑实体–分时或分空间

虚拟是操做系统管理系统资源的重要手段,可提升资源利用率

CPU–每一个进程的"虚处理器"

存储器–每一个进程都有独立的虚拟地址空间(代码+数据+堆栈)

显示设备–多窗口或虚拟终端

  • 4.随机

操做系统必须随时对以不可预测的次序发生的事件进行响应并处理

进程的运行速度不可预知:多个进程并发执行,“走走停停”,没法预知每一个进程的运行推动的快慢

难以重现系统在某个时刻的状态

4.典型操做系统的架构

windows操做系统:

在这里插入图片描述

简化后:

在这里插入图片描述