1.3操作系统提供的服务和用户接口 操作系统提供的用户接口 程序接口与系统调用 操作接口与系统程序

Slides:



Advertisements
Similar presentations
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
Advertisements

© 2001 孟静制作 版权所有 第二章 CPU 管理和进程、线程管理 2.1 CPU 管理概述 2.2 进程管理 2.3 进程模型实例分析 :UNIX 早期版本的 CPU 管理 子系统 ( 进程模型 ) 2.4 处理机管理实例分析 (2):linux CPU 管理(进程 模型) 2.5 线程模型.
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
进 程. “ 程序 ” 和 “ 进程 ” 进程是 OS 对 CPU 执行的程序的运行过程的一种抽象。进程有自 己的生命周期,它由于任务的启动而创建,随着任务的完成(或 终止)而消亡,它所占用的资源也随着进程的终止而释放。 Linux 内核中通常把进程称为任务,每个进程主要通过一个称为进程描 述符(
计算机基础 与应用案例教程 第一篇 基础理论篇 第4章 计算机软件系统.
美味料理 5223汪芮臣.
第九章 文件系统 (一)文件系统的基本概念 (二)文件的逻辑结构与存取方法 (三)文件的物理结构 (四)文件目录结构 (五)文件的共享与保护
第1单元 操作系统概论 第一节 绪论 操作系统定义.
Foundations of Computer Science
第四章 電腦軟體 課前指引 實體的電腦裝置,我們稱之為「硬體」(Hardware),至於軟體則是個抽象的概念,軟體是經由人類以各種不同的程式語言撰寫而成,以達到控制硬體、進行各種工作的抽象化(例如文書處理)等動作。有些讀者經常迫不及買了一台新電腦,就以為可以開始使用!事實不然,一部配備齊全的電腦,如果沒有合適的軟體來控制與搭配,絕對也是英雄無用武之地。一般來說,我們將軟體分「系統軟體」(System.
第十章 UNIX系统内核结构 10.1 UNIX系统概述 10.2 进程的描述和控制 10.3 进程的同步与通信 10.4 存储器管理
第七章 操作系统接口 7.1 联机用户接口 7.2 Shell命令语言 7.3 系统调用 7.4 UNIX系统调用 7.5 图形用户接口.
集群作业管理系统简介 报告人:罗正平 导 师:肖炳甲研究员.
第十四章 軟體系統安全 課前指引 網際網路的發展將每台電腦串連成共通的網絡,而層出不窮的資訊安全問題使得如何在開放的環境中,實現軟體安全的議題,逐漸受到重視。就軟體安全的角度而言,可分為軟體安全的應用及實作兩方面。在軟體安全應用方面,主要討論如何安全地執行及操作應用軟體,就網路應用軟體而言,電子郵件與檔案傳送等軟體,已有許多相關的安全技術發展,另一項近年十分流行的網路應用服務-即時通訊軟體,其安全性問題亦日漸受到重視。
中央广播电视大学开放教育试点课程 计算机操作系统.
操作系统原理 Principles of Operating System
前言 1.课程安排: 第一章 操作系统引论(7学时) 第二章 进程管理(14学时) 第三章 处理机调度与死锁(10学时)
教学目标 分析大堰河的形象、情感,解读诗人的歌唱; 把握抒情诗的记事、写人,探知作品的特色。 学法指引 学习真话、真情的写作表达。 重点探究
D、結構化技術 主要的結構化技術 結構化程式設計 (Structured Programming)
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
操作系统结构.
第2章 操作系统的用户界面 2.1 运行一个用户程序的过程 2.2 操作系统的用户界面 2.3 操作系统提供给用户程序的服务
第一章 引论 1.1操作系统的概念 计算机系统: 计算机硬件 计算机软件 计算机硬件:运算器、控制器、存储器、输入设备和 输出设备
作業系統的結構 日期 : 2018/9/17.
第6章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理
第三讲 shell 程序设计.
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
台灣大學計算機及資訊網路中心 教學研究組 張傑生
CH2 開發環境介紹 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
计算机应用基础 第二章 操作系统基础 2018/11/16.
第4章 作業系統的介紹及操作.
第8章作業系統.
作 業 系 統 第三組 楊育翰 顏瑞霖.
第五章 shell 编程 shell 编程的基本过程分为三步: 1. 建立 shell 文件 包含任意多行操作系统命令或shell命令的文本
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
第二天 计算机基础技能培训 (一)linux基础知识
Chapter 3 行程觀念 (Process Concept)
第十二章 多模組與多專案.
Chapter 4 多執行緒 (Multi Thread)
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
线程(Thread).
Process management(程序管理)
作業系統 (Operating System)
作業系統實習課(四) -檔案管理- 實驗室:720A 助教:鄧執中.
第三章 用户接口与作业管理 用户与操作系统的接口 批处理操作系统的作业管理 作业的基本概念:作业、作业步、作业流 交互式系统作业管理
嵌入式系统设计与实例开发 ——ARM与C/OS-Ⅱ 北京航空航天大学 智能嵌入式技术工作室 王田苗 魏洪兴.
第3章 認識處理元.
第 23 讲 操作系统接口与UNIX系统内核结构 李元金 计算机与信息工程学院 1.
編譯程式設計 期末專題說明 V1.1 May 2004.
实验一、进程控制 一、实验目的 1、加深对进程的理解,进一步认识并发执行的实质; 2、分析进程争用资源现象,学习解决进程互斥的方法;
第2章 进程管理 2.1 进程概念 2.2 线程 2.3 进程管理 2.4 进程间通信 2.5 经典进程同步问题 2.6 管程
作業系統 第三章 作業系統結構.
第六章 shell 程序调试 一. 程序执行状态跟踪 程序: -n 读取命令, 但不执行. 主要用于跟踪程序流程是
软件工程 第四章 软件设计 软件过程设计技术与工具.
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
靜宜大學專用 PowerPoint 檔案 數位教材
作業系統 第三章 作業系統結構.
杨振伟 清华大学 第一讲:Linux环境下编程(1)
3.5 线程 问题的提出 进程的引入使操作系统得以完成对并发执行的多道程序动态特征的描述和资源共享的管理,因而进程既是调度的基本单位又是资源分配的基本单位。进程所具有的这两个特点构成了程序并发执行的基础,但同时又导致进程切换过程中由于进程映像过大而带来的时空开销。因此,如果系统中创建的进程过多,或进程切换的频率过高,则会使系统效率下降,限制了并发度的进一步提高。
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab7.
第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能
架构师成长感悟 吴隆烽
实验二:添加Linux系统调用及熟悉常见系统调用
Do While 迴圈 東海大學物理系‧資訊教育 施奇廷.
Operating System Software School of SCU
杨振伟 清华大学 第一讲:Linux环境下编程(1)
發展工具簡介 附錄A 2019/8/23 例說8051.
《操作系统设计与实现》 第5章 文件系统.
《操作系统设计与实现》 Linux系统编程.
Presentation transcript:

1.3操作系统提供的服务和用户接口 1.3.2 操作系统提供的用户接口 1.3.3 程序接口与系统调用 1.3.4 操作接口与系统程序 1.3.1 操作系统提供的基本服务 1.3.2 操作系统提供的用户接口 1.3.3 程序接口与系统调用 1.3.4 操作接口与系统程序

1.3.1操作系统提供的基本服务 •创建程序 •执行程序 •数据I/O •信息存取 •通信服务 •错误检测和处理 还具有另外一些功能:资源分配,统计, 保护。

1.3.2操作系统提供的用户接口 操作系统为用户提供两 种接口: •程序接口 •操作接口

操作系统提供的用户接口(1) 用户和操作系统间的两种接口 系统调用 操作命令或 JCL 操 作 系 统 裸 机 (操作接口) (程序接口)

操作系统提供的用户接口(2) 程序接口又称应用编程接口API(Application Programming Interface),允许运行程序调用操作系统的服务和功能。 程序接口由一组系统调用(System Call))组成,用户程序使用“系统调用”就可获得操作系统的底层服务,使用或访问系统的各种软硬件资源。

操作系统提供的用户接口(3) 在程序设计语言(如C语言)中,往往提供与各系统调用对应的库函数,应用程序可通过对应的库函数来使用系统调用, 库函数的目的是隐藏访管指令细节,使系统调用更象过程调用,但一般地说,库函数属于用户程序而非系统程序。

操作系统提供的用户接口(4) 操作系统为用户提供系统调用也出于安全和效率考虑,使得用户态程序不能自由地访问内核关键数据结构或直接访问硬件资源。

操作系统提供的用户接口(5) UNIX/Linux系统程序、库函数、系统调用的分层关系 (进程管理、存储管理、文件管理、设备管理等) 标准库函数 (打开、关闭、读、写、创建、撤销等) 标准系统程序(实用程序) (汇编、编译、编辑、Shell等) 用户 用户接口 库函数 接口 系统调用 硬件 (处理器、存储器、磁盘、打印机、终端等) 用 户 态 核 心

操作系统提供的用户接口(6) 操作接口又称作业级接口,操作系统为用户提供的操作控制计算机工作和提供服务手段的集合,通常有操作控制命令、图形操作界面(命令)、以及批处理系统提供的作业控制语言(命令)等等。

操作系统提供的用户接口(7) Windows支持API的三个组件: • Kernel包含了多数操作系统函数,如内存管理、进程管理; • User集中了窗口管理函数,如窗口创建、撤销、移动、对话等相关函数; • GDI提供画图函数、打印函数。 Windows将三个组件置于动态链接库DLL中。

操作系统提供的用户接口(8) Win32API和UNIX/Linux系统调用粗略对应关系 UNIX/Linux Win32 说明 fork CreatProcess 创建进程 waitpid WaitForSingleObject 等待进程终止 open/close CreatFile/CloseHandle 创建或打开/关闭文件 read/write ReadFile/WriteFile 读/写文件 lseek SetFilePointer 移动文件指针 mkdir/rmdir Creat/Remove Directory 建立/删除目录 stat GetFileAttributesEx 获得文件属性

1.3.3 程序接口与系统调用 系统调用(1) (2)文件操作: (3)设备管理: (4)内存管理: (5)信息维护: (6)通信: 1.  系统调用的分类      (1)进程和作业管理: (2)文件操作: (3)设备管理: (4)内存管理: (5)信息维护: (6)通信:

系统调用(2) 2.系统调用的实现要点 一. 是编写系统调用处理程序; 系统调用(2) 2.系统调用的实现要点 一. 是编写系统调用处理程序; 二. 是设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序,有的系统还包含系统调用自带参数的个数; 三. 是陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理器现场。

系统调用(3) 系统调用的处理过程 系统调用陷入机构 System Call 用户程序 系统调用处理子程序 取系统功能号 找入口地址表 SUB0 SUB1 SUBi SUBn A1 Ai An … 系统调用处理子程序 取系统功能号 找入口地址表 相应入口地址 结束处理 恢复现场 保护CPU现场 陷入指令 系统调用陷入机构 入口地址表

系统调用(4) 系统调用的参数传递 一是由访管指令或陷入指令自带参数, 直接参数 间接参数 二是通过CPU的通用寄存器传递参数,或 在内存的一个块或表中存放参数,其首地址送入寄存器,实现参数传递。 三是在内存中开辟专用堆栈区域传递参数。

系统调用(5) 传递参数的一种方法 操作系统 X: 参数 LOAD AddR X System Call 8 X 从表X取参数 寄存器 系统调用8的处理子程序 操作系统 X: 参数 LOAD AddR X System Call 8 X 从表X取参数 寄存器

系统调用(6) Linux系统调用 •核心函数 是实现系统调用功能的(内核)代码。     •核心函数 是实现系统调用功能的(内核)代码。     •接口函数 是提供给应用程序的API,以库函数形式存在Linux的lib.a中。

系统调用(7) Linux系统调用入口程序entry.s ENTRY(sys-call-table) .long SYMBOL-NAME(sys-ni-syscall) 0 .long SYMBOL-NAME (sys-exit) 1 .long SYMBOL-NAME (sys-fork) 2 .long SYMBOL-NAME (sys-read) 3 .long SYMBOL-NAME (sys-write) 4 .long SYMBOL-NAME (sys-open) 5 .long SYMBOL-NAME(sys-close) 6 . .long SYMBOL-NAME (sys-vfork ) 190

系统调用(8) Linux系统调用号就是系统调用入口表中位置序号,系统调用通过接口函数将调用号传给内核,内核转入系统调用控制程序再通过调用号位置来定位核心函数,Linux内核的陷入由0x80(int80h)中断实现。

系统调用(9) Linux系统调用控制程序的功能 (1)取系统调用号,检验合法性; (2)建立调用堆栈,保护现场信息; (3)根据系统调用号定位核心函数地址; (4)根据通用寄存器内容,从用户栈中取入口参数; (5)核心函数执行,把结果返回应用程序; (6)执行退栈操作,判别调度程序scheduler是否要被执行。

系统调用(10) 系统调用与过程(函数) 调用的区别 一 是调用形式 二 是被调用代码的位置 三 是提供方式 四 是调用的实现

1.3.4 操作接口与系统程序(1) 操作接口又称作业(或功能)级接口,是操作系统为用户操作控制计算机工作和提供服务的手段的集合,通常可借助操作控制命令、图形操作界面(命令)、以及作业控制语言(命令)等来实现。

操作接口与系统程序(2) 操作系统提供联机作业控制方式和脱机作业控制方式两个作业级接口,使用的手段为操作命令: • 操作控制命令 1. 作业控制方式 操作系统提供联机作业控制方式和脱机作业控制方式两个作业级接口,使用的手段为操作命令: • 操作控制命令 • 作业控制语言(命令)

联机用户接口—操作控制命令 •命令行方式 •批命令方式 •图形化方式

命令行方式 While (TRUE) { /*TRUE=1,无限循环*/ type-prompt( ); /*输出屏幕提示符*/ read-command(command,parameters); /*从键盘读入参数*/ pid=fork( ); /*创建子进程*/ if(pid<0 { printf(“unable to fork!”); /*输出创建失败信息*/ continue; /*继续循环 */ } if(pid!=0) { /*创建成功*/ waitpid(-1,&status,0); /*父进程等子进程结束*/ else { execve(command,prraters,0); /*子进程执行命令*/ CH-7

批命令方式(1) 有时需要连续使用多条命令; 有时需要多次重复使用若干条命令; 有时需要选择地使用不同命令 可用批命令实现。 在使用操作命令过程中, 有时需要连续使用多条命令; 有时需要多次重复使用若干条命令; 有时需要选择地使用不同命令 可用批命令实现。 CH-8

批命令方式(2) 批命令实现思想 •规定特别的文件扩展名,用户先把一系列命令组织在该文件中,一次建立,多次执行。 •操作系统支持命令文件使用一套控制子命令,可写出带形式参数的批命令文件。这样的批命令文件可执行不同的命令序列,增强命令接口的处理能力。 CH-8

UNIX的Shell(1) Shell是交互型命令解释程序,也是命令级程序设计语言解释系统,例如, Myrun文件包含: cat $1 /* 显示文件*/ cc $1 /* 编译源程序*/ mv a.out $2 /*把目标程序改为$2*/ $2 /*运行$2*/ 执行 csh myrun prog1.c prog ,将对源程序prog1.c进行显示和编译,把目标程序改名为prog并运行。

UNIX的Shell(2) 另一个UNIX Shell的例子 从/user/user1/fei文件中,利用循环控制语句找出含单词:process、thread信息行。其Shell程序feipro为 for i do grep $i/usr/usr1/fei done 执行 csh feipro process thread依次打印出含process和thread的信息行。

MS-DOS操作系统的批文件 test.bat是查找某文件是否存在的批文件: echo off if exist %1 goto lab1 echo %1 not found! goto lab2 :lab1 echo %1 is found! :lab2 用户键入命令:test wps.exe 执行批文件,若找到 文 件 显 示 wps.exe is found! ;否 则 显 示 wps.exe not found!

脱机用户接口—作业控制语言 •批处理接口:作业控制语言JCL( Job Control Language)

IBM JCL的一个例子(1) 一个需要编译、连结编辑的作业,源程序和数据穿在卡片上,编译、连结编辑的结果需在行式打印机上输出,编译结果要存盘,连结编辑结果还要从穿孔机输出,此作业用JCL语句组织如下:

IBM JCL的一个例子(2) // HAROLD JOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLASS=b // COMP EXEC PGM=IEYFORT // SYSPRINT DD SYSOUT=A // SYSIN DD* . <Source Program Card> /* // GO EXEC PGM=FORTLINK // FTOTF001 DD UNIT=SYSCP // GO SYSIN DD* <Data Card> //

2. 命令解释程序 命令解释程序的主要功能是:接受和执行下一条用户从键盘输入的命令。当新的批作业被启动,或新的交互型用户登录时,系统就自动地执行命令解释程序,它负责读入控制卡或命令行,并作出相应解释和执行。

命令解释程序实现的两种方式 一种是它自身包含了命令的执行代码。 另一种是由专门的“系统程序” 实现,自身不含命令处理代码,也不进行处理,仅仅把这条命令对应的命令文件装入内存执行。

命令解释程序的处理过程 系统启动命令解释程序,输出命令提示符,等待键盘中断。用户打入命令并按回车换行,申请键盘中断。 CPU响应后,控制权交给命令解释程序,它读入命令缓冲区内容,分析命令、接受参数。 若为简单命令立即转向命令处理代码执行。否则查找命令处理文件,装入主存,传递参数,将控制权交给其执行。 命令处理结束后,再次输出命令提示符,等待下一条命令。

3系统程序(1) 系统程序又称标准程序或实用程序(Utilities),虽非操作系统的核心,但却必不可少,为用户程序的开发、调试、执行、和维护解决带有共性的问题或执行公共操作, 操作系统以外部操作命令形式向用户提供系统程序。它的功能和性能很大程度上反映了操作系统的功能和性能。

系统程序(2) 系统程序的分类: •文件管理 •状态信息 •程序设计语言支持 •程序的装入和执行支持 •通信 •其它软件工具

UNIX系统调用 系统调用符合可移植操作系统POSIX1003.1标准,每个兼容的UNIX都必须支持它。 UNIX的标准系统调用分进程管理、文件管理、设备管理、及状态控制等五十余条,系统调用是软件开发者进入UNIX内核的入口。

UNIX标准函数 UNIX提供标准函数,POSIX1003.1标准定义了库过程的集合,组成了标准函数库,其中较重要的是I/O库函数。 库函数用汇编语言编写,却可以在C语言中调用,例如C程序可通过执行一个Read库过程来实现Read系统调用。 标准函数库建立在系统调用的上层,它提供的功能较系统调用强,使用也较方便。

UNIX系统程序(1) UNIX含有丰富的系统程序(语言处理、文件编辑和种种软件开发及维护工具) 。POSIX1003.2标准,描述了近百个系统程序语义,集中在文件管理、目录管理、编译和程序开发工具方面。

UNIX系统程序(2) 各种UNIX版本均实现了最常用的系统程序约五十多条,UNIX下运行的微机软件包己有1000多个,这些应用程序大大加强了UNIX的功能。

系统调用(6) UNIX系统调用处理过程 中 断 C 编译 装 配 源程序 函数替换 目标程序 nw=write(fd,buf,count) Load r0,fd Trap 04 Buf count xxxxx 8904(H) ***** $$$$$ Trap中断 处理程序 C 编译 装 配 系统调用入口表 Write地址 查表 Write调用处理程序 中 断 带参数返回 系统调用(6) UNIX系统调用处理过程