Operating_System_Chapter-1_Fall_2011

Operating_System_Chapter-1_Fall_2011 - 第1章...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 第1章 操作系统概论 1.1 操作系统概念 1.2 操作系统的学习 1.3 操作系统的类型 1.4 操作系统的发展历史 1.5 主流操作系统介绍 Shanghai Jiao Tong University 1.1 操作系统概念 1.1.1 操作系统的引入 问题1:下列哪些是操作系统? 极品飞车游戏、DOS、Linux、一个C语言源程序、 Windows 2000/XP、Turbo-C、VB 6.0、Solaris、UNIX、MASM、 Word2007、VI ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-2, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.1 操作系统概念 1.1.1 操作系统的引入 问题1:下列哪些是操作系统? 极品飞车游戏、DOS、Linux、一个C语言源程序、 Windows 2000/XP/2003/2008/Vista/7、Turbo-C、VB 6.0、Solaris、 UNIX、MASM、Word2007、VI 问题2:为什么要有操作系统? 方便性:方便用户的使用,因为裸机极难被直接使用 有效性:使系统高效运转,提高资源利用率 可扩充性:支持硬件类型、规模和软件模块的扩充 开放性:提高互操作性、可移植性 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-3, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.1 操作系统概念 裸机环境示意 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-4, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 操作系统在计算机系统中的地位 (单向依赖与调用关系) 用户2 用户1 财务系统 用户3 用户4 … 用户n 航空订票 上网浏览 电子商务 … 科学计算 (应用程序) 编译程序 汇编程序 编辑程序 … 数据库 (系统程序) 操作系统 计算机 硬件 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-5, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.1.2 操作系统的定义与功能 定义 操作系统是计算机系统中的一个系统软件, 负责计算机系统的全部系统资源的分配、调 度和管理,合理有效地组织计算机工作流程, 并通过为用户提供简单、直观、灵活的接口, 方便用户使用计算机。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-6, xqfang.sjtu@gmail.com 1.1.2 操作系统的定义与功能 Shanghai Jiao Tong University 功能 管理员--必须尽可能提高资源的利用率: 进程管理-提高处理机CPU效率,引入进程和线程 概念 存储管理-内存储器的管理 文件管理 设备管理 服务员--必须提供方便易用的用户界面。包 括: 命令接口 程序接口 图形接口 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-7, xqfang.sjtu@gmail.com 1.1.2 操作系统的定义与功能 Shanghai Jiao Tong University 功能 管理员: 进程管理-提高处理机CPU效率,引入进程和线程 概念 进程和线程控制 进程和线程的同步与互斥 进程和线程间的通信 进程死锁的预防、避免、检测和解除 处理机调度,实现作业和进程的运行切换 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-8, xqfang.sjtu@gmail.com 1.1.2 操作系统的定义与功能 Shanghai Jiao Tong University 功能 管理员: 存储管理-内存储器的管理 内存的分配与回收 内存的共享和保护 地址映射 内存的逻辑扩充 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-9, xqfang.sjtu@gmail.com 1.1.2 操作系统的定义与功能 Shanghai Jiao Tong University 功能 管理员: 设备管理-管理各种外围设备,方便用户的使用, 提高CPU与I/O设备的利用率 控制设备操作,即设备驱动 实现设备独立性,使应用程序独立于物理设备(比如无需 关心所读写的文件究竟是存在于硬盘、软盘、U盘还是 内存虚拟盘上面) 设备的分配与回收,解决多用户的I/O设备资源的共 享问题 虚拟设备,如不同用户对同一打印机的虚拟独占使用 缓冲区管理,匹配CPU和I/O设备的速度 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-10, xqfang.sjtu@gmail.com 1.1.2 操作系统的定义与功能 Shanghai Jiao Tong University 功能 管理员: 文件管理-解决程序和数据等文件在外存上的存储、 共享、保密和保护等问题,提高外存资源的利用 率。 文件的按名存取,实现文件名到文件存储问题的映射 文件存储空间管理,提高外存空间的利用率,并确保文 件的读写性能 目录管理,解决文件的分类与检索问题,提高文件的访 问效率 文件的存取控制,解决文件的安全和保护问题 文件和目录的操作,文件和目录的创建、读、写、复制 与删除等 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-11, xqfang.sjtu@gmail.com 1.1.2 操作系统的定义与功能 Shanghai Jiao Tong University 功能 服务员: 用户接口-通过用户接口提供服务。包括: 给操作员的 命令接口-键盘命令 图形接口-鼠标命令 给程序员的 程序接口-应用程序编程接口(Application Programming Interface – API),由一系列系统调用( System Call)组成 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-12, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.1.3 操作系统的特征 并发性 共享性 虚拟性 异步性 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-13, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.1.3 操作系统的特征 并发性 并发是指两个或多个事件或活动在同一时间段内发生。 并行是多个事件在同一时刻发生。 并发机制能够消除各部件间的相互等待。 操作系统的并发性是指在某一段时间内,若干程序都 处于运行状态。 在单CPU系统中,程序的并发性是指多个程序宏观上 同时运行,但微观上交替执行。 实现并发技术的关键是如何对系统内的多个活动(进 程)进行切换的技术。 并发相当于分时复用;并行相当于频分复用。 不同班级的课程在并行地进行,而同一个班级的课程 则是在并发地进行 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-14, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.1.3 操作系统的特征 共享性 内存中的多个并发执行的程序共享有限的计算 机系统资源。 有互斥共享和同时共享之分。 互斥共享方式指共享资源一次只允许被一个程 序所使用->临界资源, 比如打印机、调制解 调器。 同时共享(同时访问)方式指资源能够同时被多 个程序使用,比如硬盘、内存。 教室内的多个座位供多名同学自学; 一个教室每次仅能供一门课程使用。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-15, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.1.3 操作系统的特征 虚拟性 指一个物理设备转换为若干个对应的逻辑设备,或者 多个物理设备转换成一个逻辑设备。 经过必要的封装和虚拟,从而可以提供某一个特定功 能的服务。 虚拟处理机- 单个CPU通过分时使用被虚拟为多个逻辑 CPU。 虚拟内存-扩充系统运行的内存空间。 虚拟设备-采用在共享的磁盘设备上虚拟原来独占的 设备,提高设备利用率; 虚拟文件系统-使得不同的文件子系统均可挂接在系 统中得以运行。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-16, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.1.3 操作系统的特征 异步性 不确定性或随机性 由于随机性事件的存在,比如 ? ,使得操作 系统的进程调度也具有随机性,从而是不 确定的。 主要体现在进程的执行顺序和执行时间存在 着不确定性, 也就是多道程序中每道程序何 时执行,及其运行完成所需时间,“时走时 停”。 操作系统的运行过程往往是无法重复再现进 行的。 通过互斥和同步手段营造相对确定的运行环 境。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-17, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.2 操作系统的学习 1.2.1 学习操作系统的目的 了解操作系统的内部实现机制,从而更好地开 发系统程序和应用程序。 根据需要选择操作系统及操作系统中的可选部分 利用操作系统概念、思想、系统调用,开发和设计应 用系统 为专门用途设计、修改、扩充操作系统功能 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-18, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.2 操作系统的学习 1.2.2 学习操作系统的几个观点 从系统设计者的角度出发 资源管理的观点 进程管理的观点(一种动态观点) 从用户的角度出发 虚拟机的观点 用户界面的观点 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-19, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.2 操作系统的学习 1.2.2 学习操作系统的几个观点 从系统设计者的角度出发 资源管理的观点 硬件资源, CPU、存储器、I/O设备等 软件资源,程序和数据等 在操作系统的控制下,使并发执行的多道程序有 效地分配系统资源,充分提高它们的使用效率, 使每个程序都能正确有效地运行。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-20, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.2 操作系统的学习 1.2.2 学习操作系统的几个观点 从系统设计者的角度出发 进程管理的观点(一种动态观点) 操作系统由一些可同时独立运行的进程和一个对 这些进程进行协调的核心组成。 进程是程序执行的一个实例,是程序的一次运行 过程。 进程作为独立运行的实体和系统资源分配的基本 单位,操作系统自始至终参与对它的管理。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-21, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.2 操作系统的学习 1.2.2 学习操作系统的几个观点 从用户的角度出发 虚拟机的观点 基于程序员的软件分层的观点。 裸机很难使用。 裸机被覆盖上一层操作系统软件后,用户看到的 是功能变强、易于操作的虚拟计算机。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-22, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.2 操作系统的学习 1.2.2 学习操作系统的几个观点 从用户的角度出发 用户界面的观点 操作系统是用户使用和操作计算机系统的接口。 用户通过操作系统所提供的(键盘/鼠标)命令接口 和程序接口使用计算机。 操作系统屏蔽了具体执行的细节。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-23, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.2 操作系统的学习 1.2.3 操作系统的周边结构示意 硬件/裸机 内核 外壳 应用程序 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-24, xqfang.sjtu@gmail.com 1.2.3 操作系统的周边结构示意 Shanghai Jiao Tong University User Mode Applications Standard Libs Kernel Mode Hardware ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-25, xqfang.sjtu@gmail.com 1.2.3 操作系统的逻辑结构 Shanghai Jiao Tong University 用户接口 (命令接口、程序接口、图形用户接口) 对对象操纵和管理的软件集合 (处理机管理软件、存储器管理软件、设备理软件、文件管理软件) 操作系统对象 (处理机、存储器、设备、文件) ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-26, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.3 操作系统的类型 个人单用户操作系统 批处理系统 分时系统 实时系统 网络操作系统 分布式操作系统 多处理机操作系统 嵌入式操作系统 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-27, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.3 操作系统的类型 1.3.1 个人单用户操作系统 可分为单用户单任务(DOS)和单用户多任 务(Windows 3.1) 所有资源都归当前用户使用 易于联机交互,支持多种硬件和外设 主要用于个人的事务处理和娱乐 常见的个人单用户操作系统:DOS。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-28, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.3 操作系统的类型 1.3.2 批处理系统 作业:用户在一次算题或者事务处理过程中要求计算机系统所 做工作的集合。 批处理系统是指加载在计算机上的一个系统软件,在它的控制 下,计算机能够自动地、成批地处理一个或多个用户的作业。 对于这样的系统,其CPU资源往往非常昂贵 作业的定义是离线完成的 作业一般通过纸带、卡片、磁带等媒介输入至主机 根据其内存中可同时驻留的作业数量,可分为单道批处理系统 与多道批处理系统 多道批处理系统将作业在CPU上的执行与在I/O设备上的信息传 输重叠起来,既提高了CPU的使用效率,又增加了系统的吞吐 量 脱机批处理系统,即脱离主机控制的输入/输出批处理系统(由 外围机预先将作业从纸带或卡片低速输入到磁带上,再由主机 从磁带高速调入至内存),相当于有人帮着嗑瓜子。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-29, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.3 操作系统的类型 1.3.3 分时系统 分时系统是指在一台主机上连接了多个带有显示器和 键盘的终端,它允许多个用户同时通过终端以交互方 式使用计算机共享主机中的资源。 所谓分时,就是把CPU时间分成一个个的时间片,每 个时间片分给一个用户使用,这样将CPU工作时间分 别提供给多个用户使用,每个用户依次地轮流使用一 个时间片。 比如,两个初级球员双打一个高级球员。 多路性(同时性)、交互性、独立性(独占性)、及时性 时间片轮转算法是关键因素 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-30, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.3 操作系统的类型 1.3.4 实时系统 计算机对周期性或者随机性发生的外部事件能做出及 时的响应和处理。 对响应时间的要求,可分为硬实时和软实时。 实时控制系统(硬实时系统),比如用于火炮自动控制、 飞机自动驾驶、导弹的制导系统等 实时信息处理(软实时系统) ,比如飞机订票系统、 情报检索系统等 特点: 快速的响应时间,对外部事件的响应要十分迅速 高可靠性,系统必须高度可靠 有限的交互能力 不强调资源的利用效率(就好比消防队员们并不是整天在救 火的,大多处于待命状态) ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-31, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.3 操作系统的类型 批处理 分时 实时 管理方式 批处理 分时间片 实时响应 放在首位考虑的因素 系统吞吐量 交互性 安全性和可靠性 交互性(高中低) 无 高 低 响应时间(高中低) 低 中 高 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-32, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.3 操作系统的类型 1.3.5 网络操作系统 为网络上的计算机进行方便而有效的网络资 源共享,提供网络用户所需各种服务的软件 和相关规程的集合。 重要性能指标是网络功能与操作系统的结合 程度 一般操作系统附加网络软件->网络功能成为 操作系统的有机组成部分 提供网络通信、文件传输、设备的网络共享、 远程登录等功能 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-33, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.3 操作系统的类型 1.3.6 分布式操作系统 为分散处理、协同完成任务而将多个分散的 计算机经互联网络连接而成的计算机系统, 运行在分布式系统环境下的操作系统就是分 布式操作系统。 自动实现全系统范围内的任务分配并自动调 度各处理机的工作负载。 紧密耦合系统、一个进程可能分散在各个机 器上并行执行、网络资源的调度对用户是透 明的、相对于网络操作系统更为健壮。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-34, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.3 操作系统的类型 1.3.7 多处理机操作系统 并行工作的多个处理机,通过高速总线连接 起来,每个处理机上能运行不同的进程(或线 程),真正实现了进程(或线程)的并行执行。 各处理机之间通过快速总线或者开关阵列相 连,并共享内存 在多处理机系统上运行的就是多处理机操作 系统 大多现代的操作系统,比如Windows Server 2003/2008、Solaris、Tru64 Unix、Linux等, 均已经支持SMP多CPU ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-35, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.3 操作系统的类型 1.3.8 嵌入式操作系统 计算机嵌入式应用得到大量的应用 有时也被理解为实时系统的一个分支 嵌入式操作系统是指运行在嵌入式系统环境中,对整个嵌入式 系统及所有操作的各种部件、装置等资源进行统一协调、处理、 指挥和控制的系统软件。 嵌入式系统是由嵌入式处理机及相关支撑设备、嵌入式操作系 统、嵌入式应用软件等组成的专用系统。 对功能、可靠性、成本、体积、功耗等要求严格 强实时嵌入式操作系统:VxWorks、Psos、QNX。 弱实时嵌入式操作系统:Windows CE、Java OS。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-36, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 手工操作时期 晶体管时代,是为了减少人工操作时间和作业转换时 间提高CPU利用率而设计的,以磁带输入作业。 多道程序与操作系统成熟时期 电子管时代,手工操作方式直接使用计算机硬件系统, 用卡片、纸带输入作业 监控程序时期 1.4 操作系统的发展历史 出现了多道批处理系统、分时系统和实时系统,出现 通用操作系统 软件工程与操作系统发展时期 微机操作系统的出现,网络操作系统、分布式操作系 统、并行操作系统、嵌入式操作系统 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-37, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.4 操作系统的发展历史 多道程序设计 多道程序设计是指允许多个程序同时进入一个计算机 系统的主存储器并启动进行计算的方法。 从宏观上看:多个程序同时运行; 从微观上看:多个程序交替执行; 引入多道程序设计技术的根本目的: 提高资源利用率和系统吞吐率,但对每道程序来说, 却延长了计算时间,是以牺牲用户的响应时间为代价 的。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-38, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.5 主流操作系统介绍 Unix操作系统 Windows操作系统 Linux操作系统 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-39, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.5 主流操作系统介绍 UNIX 唯一一种能运行在微型机到小、中、 大型机到巨型机的操作系统。 早期的源代码公开->后来的商业化 BSD Unix、SunOS、Solaris、SCO Unix、Digital Unix、Tru64 Unix、 HP-UX、AIX ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-40, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.5 主流操作系统介绍 Windows 客户端: 服务器: Windows 1.0/2.0, Windows3.X, (16位内核) Windows 95/98/ME(16~32混合内核) Windows 2000 Workstation/XP professional(32位内核) Windows Vista/7 Windows NT系列 Windows 2000 Server系列 Windows 2003/2008 Server 嵌入式应用: Windows CE.NET Windows XP Embedded Windows Mobil 5.0 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-41, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1.5 主流操作系统介绍 Linux 自由软件 源代码公开 FSF: Free Software Foundation GNU: GNU’s Not Unix GPL: General Public License Red Hat Linux/红帽子Linux 红旗Linux ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-42, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 小结一 操作系统是计算机系统中最重要的系统软 件,是对硬件功能扩充的第一层软件,是 任何其它软件运行的基础平台 操作系统的使用显著改善了计算机系统的 运行效率,也方便了用户 操作系统的主要功能是实现计算机系统的 软、硬件资源的管理,包括:作业、进程、 存储、文件和设备的管理 操作系统有着与其它软件不同的特性,即 并发性、共享性、虚拟性和异步性 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-43, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 小结二 基本的操作系统类型包括批处理系统、分 时系统和实时系统三种 多处理机操作系统、网络操作系统、分布 式操作系统和嵌入式操作系统代表了操作 系统的发展方向 学习操作系统的目的是了解操作系统的内 部实现机制,掌握一些基于实际应用的操 作系统相关技术,从而更好地开发系统程 序和应用程序。 ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-44, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 课后任务 (课后自行思考/下次上课课堂回答) 1. 2. 3. 4. 5. 6. 7. 试述操作系统的定义。 从管理方式、放在首位考虑的因素、交互性 (高中低)和响应时间(高中低)等方面,试 述批处理操作系统、分时操作系统和实时操作 系统的特点分别是什么? 无论哪种操作系统都将系统效率放在第一位吗? 试举例说明。 什么是多道程序设计技术?它有什么特征? 操作系统的主要特征是什么? 什么是并发?什么是并行? 分布式操作系统与网络操作系统有何区别? ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-45, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1. 2. 3. 4. 5. 6. 7. 8. 课后课程设计任务 自学第9章Linux应用基础; 自学第10章Linux的操作命令界面与内核编译; 练习实验1 实验环境与Linux操作系统的安装 (虚拟机、红帽子Linux安装、虚拟网卡的安装); 练习实验2-1 Linux的键盘命令; 练习实验2-2 Linux的图形界面; 练习实验2-3 Linux的批处理; 练习实验3-1 Linux进程的创建与父子进程同步; 练习实验3-2 Linux子进程映像的重新加载; ftp://xqfang:fall2011@public.sjtu.edu.cn/Operating_System IE310, 1-46, xqfang.sjtu@gmail.com ...
View Full Document

Ask a homework question - tutors are online