操作系统A

李美蓉

目录

  • 1 操作系统引论
    • 1.1 计算机操作方式的演变
    • 1.2 什么是操作系统
    • 1.3 操作系统的结构
    • 1.4 操作系统的特性
  • 2 进程管理
    • 2.1 进程描述
    • 2.2 进程状态及转换
    • 2.3 进程控制
    • 2.4 进程的并发执行
    • 2.5 进程同步与互斥
    • 2.6 信号量机制及应用
    • 2.7 生产者消费者问题
    • 2.8 读者写者问题
    • 2.9 哲学家就餐问题
    • 2.10 进程通信
    • 2.11 消息缓冲区队列机制
  • 3 线程
    • 3.1 什么是线程
    • 3.2 线程实现
  • 4 处理机调度
    • 4.1 处理机调度概述
    • 4.2 作业调度
    • 4.3 进程调度
    • 4.4 实时调度
  • 5 死锁
    • 5.1 死锁概念及资源分配图
    • 5.2 死锁的必要条件及预防
    • 5.3 死锁避免
    • 5.4 死锁检测和解除
  • 6 存储器管理
    • 6.1 存取器概述及连续分配方式(一)
    • 6.2 动态分区分配及可重定位分区分配
    • 6.3 分页存储管理
    • 6.4 页表结构
    • 6.5 分段及段页式存储管理方式
  • 7 虚拟存储器管理
    • 7.1 虚拟存储技术
    • 7.2 请求分页存储管理
    • 7.3 页面置换算法
    • 7.4 抖动与工作集
    • 7.5 请求分段存储管理
  • 8 磁盘存储器系统
    • 8.1 磁盘存储器的结构
    • 8.2 磁盘调度
    • 8.3 廉价磁盘冗余阵列(RAID)
    • 8.4 提高磁盘I/O的其他方法
    • 8.5 磁盘可靠性技术
  • 9 输入输出系统
    • 9.1 I/O硬件系统
    • 9.2 I/O控制方式
    • 9.3 中断处理程序及设备驱动程序
    • 9.4 设备无关性软件
    • 9.5 缓冲管理
    • 9.6 用户层软件及Spooling
  • 10 文件系统
    • 10.1 文件及逻辑结构
    • 10.2 文件目录结构
    • 10.3 连续分配及链接分配
    • 10.4 索引分配
    • 10.5 空闲空间管理
  • 11 操作系统实验
    • 11.1 实验一  Linux基本命令
    • 11.2 实验二 进程管理
    • 11.3 实验三 进程间通信
    • 11.4 实验四 处理机调度
    • 11.5 实验五 存储管理
    • 11.6 实验六 文件管理
实验一  Linux基本命令

1.1 实验目的

1. 熟悉在Linux操作系统下的基本操作,对Linux操作系统有一个感性认识。

  2. 学会使用vi编辑器编辑简单的C语言程序,并能对其编译和调试

1.2 背景知识

1. 参阅相关Linux的命令参考手册,熟悉Linux下的操作命令。

2. C语言源程序的调试和编译知识。

1.3实验内容

1.3.1 常用命令练习

1.        登录系统:login 用户名称

2.        注销(退出)系统:logout

3.        关机命令:shutdown now或 init 0(注意:root账户能用,普通账户不能用)

4.        使用man命令帮助,例如:man ls(屏幕显示关于ls命令的帮助信息)

5.        ls(显示目录内容)

格式:ls  [选项] [目录或是文件]

其中:-a  显示指定目录下所有子目录和文件,包括隐藏文件

      -l   以长格式来显示文件的详细信息。

      -R  递归地显示指定目录的各个子目录中的文件

例如:

使用ls 查看当前目录内容:  $ ls

使用ls 查看指定目录内容: $ ls /etc

使用ls  al 查看当前目录内容:   $ls -al

使用dir 查看当前目录内容:  $dir

6.        cd (改变工作目录)

格式: cd   [路径名称]

如:cd  ..   回到上层目录  cd  /   回到根目录

7.        pwd  (显示当前工作目录的绝对路径)

格式: pwd

8.        mkdir (创建目录)

格式:mkdir  [目录名称]

例如:  mkdir  /home/s2001/newdir

9.        rmdir (删除空目录)

格式:rmdir [选项]  [目录名称]

10.    cp (文件或目录的复制) 

格式:cp  [选项] 源文件或目录  目标文件或目录

例如: cp  文件名文件名2

11.    mv  (文件或目录更名或将文件由一个目录移到另一个目录中)

格式:mv  [选项] 源文件或目录 目标文件或目录

12.    rm (删除文件或目录)

  格式:rm  [选项] 文件名|目录名

13.    cat  (显示文件)

格式:cat  [选项] 文件列表

例如:cat 文件名  

cat命令也可用来建立新文件:cat >文件名,ctrl+d结束输入

1.3.2 vi编辑器的使用

 vi 提供二种工作模式:输入模式 (insert  mode)和命令模式 (command  mode)。使用者进入 vi 后,即处在命令模式下,此刻键入的任何字符皆被视为命令,可进行删除、修改、存盘等操作。要输入信息,应转换到输入模式。 

1.命令模式 

在输入模式下,按 ESC 可切换到命令模式。

命令模式下,可选用下列指令离开 vi:

q!  离开 vi,并放弃刚在缓冲区内编辑的内容 

 :wq   将缓冲区内的资料写入磁盘中,并离开 vi 

 :ZZ   同 wq 

 :x  同 wq 

 :w 将缓冲区内的资料写入磁盘中,但并不离开 vi 

 :q 离开 vi,若文件被修改过,则要被要求确认是否放弃修改的内容,此指令可与:w配合使用。

2.输入模式

在命令模式下,按i或a,进入输入模式,此时可以编辑文件内容。

1.3.3 gcc的使用

gcc由GNU之父Stallman所开发的linux下的编译器,全称为GNU Compiler Collection。在linux下可以直接编译c语言源程序,可生成可执行文件。

例如:gcc  hello.c  编译hello.c源文件,若通过,会自动生成名称为a.out可执行文件。

例如:gcc  hello.c  –o  hello.exe  编译hello.c源文件,若通过,会生成hello.exe可执行文件。

1.3.4使用vi编辑c语言源文件

1)进入linux的文本模式之后,在命令行键入vi filename.c 然后回车。下面作一些简单的解释:首先vi命令是打开vi编辑器。后面的filename.c是用户即将编辑的c文件名字,注意扩展名字是.c;当然,vi编辑器功能很强,可以用它来编辑其它格式的文件,比如汇编文件,其扩展名字是.s;也可以直接用vi打开一个新的未命名的文件,当保存的时候再给它命名,只是这样做不很方便。

2)最基本的命令i :当进入刚打开的文件时,不能写入信息,这时按一下键盘上的i键(insert),插入的意思,就可以进入编辑模式了。如下图所示:

 

3ai是相同的用法

4)当文件编辑完后,需要保存退出,这时需要经过以下几个步骤:1)按一下键盘上的Esc 键;2)键入冒号(),紧跟在冒号后面是wq(意思是保存并退出)。如果不想保存退出,则在第二步键入冒号之后,键入q(不带w,不保退出)。如下图所示:

 

5)退出vi编辑器的编辑模式之后,要对刚才编写的程序进行编译。编译的命令是:gcc filename.c [-o outputfilename],其中gccc的编译器。参数:filename.c 是刚才编辑的c 源文件(当然也可以是以前编写好的c文件);后面中括号里面的参数是可选的,它是一个输出文件。如果不选,默认的输出文件是a.out ,选了之后输出文件就是outputfilename.out

6)最后一步是运行程序,方法如下:./ outputfilename.out

附:参考c语言源程序

#include <stdio.h>

int main()

{

   printfHelloworld”);

   return 1;

}