操作系统概念学习笔记 4 操作系统结构和操作简述

简介:

操作系统概念学习笔记 4

操作系统结构和操作简述

操作系统结构

多道程序设计

多道程序设计指的是允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法。也就是说,计算机内存中可以同时存放多道(两个以上相互独立的)程序,它们都处于开始和结束之间。只要有一个程序或任务可以执行,cpu就不会空闲。

但是不能提供与计算机系统直接交互的能力。

分时系统(多任务)

分时系统(多任务)是多道程序设计的延伸,在分时系统中,虽然cpu还是通过在作业之间的切换来执行多个作业,但是由于切换频率很高,用户可以在程序运行期间与之进行交互。

分时是指多个用户分享使用同一台计算机。多个程序分时共享硬件和软件资源。分时操作系统是指在一台主机上连接多个带有显示器和键盘的终端,允许多个用户通过主机的终端以交互方式使用计算机,共享主机中的资源。

共享需要一种交互式计算机系统,它能提供用户和系统之间的直接通信。

分时允许许多用户同时共享计算机,每个用户只要少量cpu时间,随着系统从一个用户切换到另一个用户,每个用户会感觉到整个系统只为自己所用。

装到内存并执行的程序通常被称为进程(process),当进程执行时,通常他只执行较短的一段时间,,此时他并未完成或者需要进行IO操作。由于交互IO通常按人的速度来运行,会运行很长时间,例如每秒5个字符的输入速度对计算机相当的慢了。用户交互输入时,系统为了不让cpu空闲,会将cpu 切换到其他用户的程序。

分时和多道程序设计需要在存储器中同时保存有几个作业。由于主存较小,通常在开始将作业存储在磁盘的作业池中。作业调度(job scheduling)按照一定的算法,从作业池或后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。

在分时操作系统中,操作系统必须保证合理的响应时间,这需要交换即进程在内存与磁盘之间的来回转移来实现。更常用的方法是使用虚拟内存(virtual memory),虚拟内存允许将一个执行的作业不完全放在内存里,且他可以比物理内存大。还有,虚拟内存将内存抽象成一个 庞大且统一的存储数组,将用户索理解的逻辑内存(logical memory)与真正的物理内存区别开来。

操作系统操作

现代操作系统是中断驱动的。如果没有进程可执行,没有I/O设备可服务,没有用户可响应,那么操作系统就会安静的等待事件的发生。事件总是由中断或陷阱引起。陷阱或异常是一种软件中断,由于出错比如除数为零或者源于用户程序的一个特别请求(完成操作系统服务)。对每一种中断,操作系统中不同的代码段决定将要采取的动作。

双重模式操作

采用共享,许多进程可能会受到一个程序的漏洞的不利影响,因此操作系统的设计必须保证一个错误的程序不会造成其他程序执行错误。

为保证操作系统的正常执行,必须区分操作系统代码和用户定义的代码。可以采用的方法是提供硬件支持以允许区分各种执行模式。

计算机硬件中增加一个称为模式位(mode bit) 的位以表示当前模式:监督程序模式0和用户模式1.有了模式位就可以区分操作系统和用户分别执行的任务。

这里写图片描述

双重模式操作系统为保护操作系统和用户程序不受错误用户程序影响的手段。实现方法是:将能引起损害机器的指令设为特权指令(privileged instruction),用户模式执行这些指令是非法的,并将其以陷阱的形式通知操作系统。

切换到用户模式就是一个特权指令,其他的例子包括I/O控制、定时器管理,中断管理。

当CPU运行于内核模式时,一切程序都可运行.任务可以执行特权级指令,对任何I/O设备有全部的访问权,还能够访问任何虚地址和控制虚拟内存硬件.这种模式对应80×86的ring0层,操作系统的核心部分,包括设备驱动程序都运行在该模式.

系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序。系统调用通常采用陷阱到中断向量的一个指定位置的方式。

为确保系统对cpu的控制、防止程序进入死循环或不调用系统服务,并且不将控制全返回到操作系统。为实现之一目标,可使用定时器。系统在将控制权交给用户之前,应确保设置好计时器以便产生中断。计时器产生中断,控制权自动交给操作系统。

目录
相关文章
|
28天前
|
API 数据处理 C语言
探索操作系统:从基础概念到实际应用
本文将带你进入操作系统的世界,了解它的基本概念、发展历程和应用场景。我们将一起探讨操作系统的核心功能、体系结构以及它在计算机系统中的重要作用。同时,我们还将介绍一些常见的操作系统类型,并分析它们的特点。最后,通过一个简单的代码示例,展示操作系统在实际应用中的重要作用。让我们一起揭开操作系统的神秘面纱,探索它的奥秘吧!
|
1月前
|
安全 算法 Unix
深入浅出操作系统:从基础概念到实践应用
【10月更文挑战第22天】本文旨在以浅显易懂的语言,为读者揭开操作系统的神秘面纱。我们将从操作系统的基本概念出发,逐步深入其核心功能与设计哲学,并通过具体代码示例,展示操作系统如何在实际中发挥作用。无论你是计算机科学的学生,还是对技术有浓厚兴趣的爱好者,这篇文章都将为你提供一次轻松愉快的操作系统之旅。
47 4
|
2月前
|
Ubuntu Java Linux
Linux操作系统——概念扫盲I
Linux操作系统——概念扫盲I
49 4
|
3月前
|
存储 算法 安全
深入理解操作系统:从基础概念到代码实践
【9月更文挑战第23天】本文将带领读者深入探索操作系统的奥秘,从基础概念出发,逐步揭示操作系统的工作原理和设计哲学。我们将通过实际代码示例,展示操作系统如何与硬件交互、管理资源以及提供用户界面。无论你是计算机专业的学生还是对操作系统感兴趣的开发者,这篇文章都将为你打开一扇通往操作系统世界的大门。
75 16
|
7月前
|
存储 缓存 Linux
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
|
5月前
|
人工智能 Unix 物联网
深入理解操作系统:从概念到实践
【7月更文挑战第31天】本文将带领读者深入探索操作系统的世界,从基本概念、发展历程、核心组件,到实际应用场景和未来趋势。我们将揭示操作系统如何作为软件与硬件之间的桥梁,以及它如何影响计算机系统的性能和用户体验。通过本文,您将获得对操作系统设计哲学的深刻理解,并掌握评估不同操作系统特性的能力。
84 7
|
5月前
|
算法 安全 Linux
深入理解操作系统:从基础概念到现代发展
【7月更文挑战第25天】在数字时代的心脏,操作系统(OS)扮演着至关重要的角色。本文将深入探讨操作系统的核心功能、设计哲学以及它们如何适应不断变化的技术需求。我们将从早期的批处理系统和多道程序设计开始,逐步走向现代的多任务、多用户操作系统,并探索它们是如何管理资源、提供安全性和促进用户交互的。文章还将触及开源与专有操作系统之间的辩论,并预测未来可能的发展方向。
|
5月前
|
存储 安全 物联网
深入理解操作系统:从基础概念到现代挑战
【7月更文挑战第14天】本文将探索操作系统的核心概念,并分析其在现代计算环境中面临的挑战。我们将从操作系统的定义和功能出发,逐步深入到进程管理、内存管理、文件系统以及并发和同步等关键领域。文章还将讨论操作系统在云计算、物联网(IoT)和安全性方面的新挑战,为读者提供对操作系统复杂性的全面理解和未来发展方向的洞见。
72 1
|
5月前
|
弹性计算 运维 安全
【实践】使用操作系统智能助手OS Copilot解锁操作系统运维与编程
体验阿里云OS Copilot,运维人员进行Linux环境配置,包括初始化、修改密码和设置端口。工具提供知识问答、辅助编程功能,能理解口语化指令,但对复杂编程任务有限制。作为运维,给予产品8分,愿意推荐并参与开源开发。产品优点在于准确度,期待扩展更多语言支持和智能故障排查。不足之处包括资源续费说明不清、特定问题回答不准确和需实时学习更新。
|
6月前
|
存储 Unix Linux
深入理解操作系统:从概念到实践
【6月更文挑战第29天】本文将带领读者深入探索操作系统的奥秘,从其基本概念到实际应用。我们将一窥操作系统如何管理计算机硬件资源,提供用户接口,以及实现文件系统和网络通信等功能。文章不仅解读了操作系统的核心原理,还通过具体案例展示了这些原理在现代计算环境中的应用。无论你是软件开发者、系统管理员还是对计算机科学感兴趣的学生,这篇文章都将为你提供宝贵的知识和洞见。
下一篇
DataWorks