中南大学
操作系统 课程设计报告
学 院:_ 信息科学与工程学院____ 专业班级: 计算机科学与技术09**班 学 号: 09090928** 姓 名: ***
指导教师: 宋 虹
2012年6月
0
目录
一、 概述 ??????????????? 1 二、 课程设计要求 ??????????? 1 三、 设计的基本原理和概念???????? 1 四、 详细设计:使用主要控件、函数???? 6
1. 线程 1 函数(获得两个随机数) ?? 6 2. 线程 2 函数(计算它们的和)??? 7 3. 线程 3 函数(输出结果)????? 8 4. 信号量控制 ?????????? 8 5. 登录以及用户切换????????? 8 6. 新增用户函数??????????? 10 五、 运行及使用 ????????????? 11 六、 实验总结 ????????????? 14
参考文献 ?????????????? 15
1
一、 概述
操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。
二、 课程设计要求
采用VC、VB、java或C等编程语言,模拟开发一个多用户多任务的类操作系统软件。要求如下:
1. 模拟进程调度算法,模拟各种进程调度算法,并能管理各种进程调度算法的演示过程。
2. 模拟各种内存分配算法及回收过程,并能动态演示。结合进程调度算法,能为进程模拟分配内存,并设计一个跟踪该内存模拟分配的进程或线程,记录内存分配的结果;
3. 模拟多用户登录管理过程,能允许多个用户登录,为每个用户建立进程或线程,并进行进程管理;
4. 能模拟文件系统管理,进程可以对文件系统(包括文件和目录)进行读、写、创建、删除、打开、关闭等操作;
5. 模拟磁盘管理过程,结合文件系统管理,显示磁盘管理的结构和文件在磁盘上的分布情况。
6. 能模拟进程通信管理,用户之间可以相互通信交流; 7. 最好能采用类似于Windows的窗口界面。
三、 设计的基本原理和概念
我所做的部分是模拟多用户登录管理过程,能允许多个用户登录,为每个用户建立进程或线程,并进行进程管理。还有进程间的通信。
进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。
进程间通信目的: a)数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。
b) 共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。
c) 通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。
d)资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁和同步机制。
2
e) 进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。
进程可以对任何信号指定另一个动作或重载缺省动作,指定的新动作可以是忽略信号。进程也可以暂时地阻塞一个信号。因此进程可以选择对某种信号所采取的特定操作,这些操作包括:
(a)忽略信号:进程可忽略产生的信号,但 SIGKILL 和 SIGSTOP 信号不能被忽略,必须处理(由进程自己或由内核处理)。进程可以忽略掉系统产生的大多数信号。
(b)阻塞信号:进程可选择阻塞某些信号,即先将到来的某些信号记录下来,等到以后(解除阻塞后)再处理它。
(c)由进程处理该信号:进程本身可在系统中注册处理信号的处理程序地址,当发出该信号时,由注册的处理程序处理信号。
(d)由内核进行缺省处理:信号由内核的缺省处理程序处理,执行该信号的缺省动作。例如,进程接收到SIGFPE(浮点异常)的缺省动作是产生core并退出。大多数情况下,信号由内核处理。
对信号的任何处理,包括终止进程,都必须由接收到信号的进程来执行。而进程要执行信号处理程序,就必须等到它真正运行时。因此,对信号的处理可能需要延迟一段时间。
信号没有固有的优先级。如果为一个进程同时产生了两个信号,这两个信号会以任意顺序出现在进程中并会按任意顺序被处理。另外,也没有机制用于区分同一种类的多个信号。如果进程在处理某个信号之前,又有相同的信号发出,则进程只能接收到一个信号。
进程间通信主要包括管道, 系统IPC(包括消息队列,信号量,共享存储), SOCKET。
操作系统通过信号来通知进程系统中发生了某种预先规定好的事件(一组事件中的一个),它也是用户进程之间通信和同步的一种原始机制。一个键盘中断或者一个错误条件(比如进程试图访问它的虚拟内存中不存在的位置等)都有可能产生一个信号。Shell也使用信号向它的子进程发送作业控制信号。 信号量:它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目 .信号量对象对线程的同步方式与前面几种方法不同,信号允许多个线程同时使用共享资源,这与操作系统中的PV操作相同。它指出了同时访问共享资源的线程最大数目。它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。
信号的PV操作。信号量S是一个整数,S大于等于零时代表可供并发进程使用的资源实体数,但S小于零时则表示正在等待使用共享资源的进程数。 P操作申请资源: (1)S减1;
(2)若S减1后仍大于等于零,则进程继续执行;
(3)若S减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转入进程调度。
V操作 释放资源: (1)S加1;
(2)若相加结果大于零,则进程继续执行;
3
相关推荐: