操作系统上机实验报告(西电)

操作系统上机实验报告(西电)
操作系统上机实验报告(西电)

操作系统上机题目

一、题目

实验1:LINUX/UNIX Shell部分

(一)系统基本命令

1.登陆系统,输入whoami 和pwd ,确定自己的登录名和当前目录;

登录名yuanye ,当前目录/home/yuanye

2.显示自己的注册目录?命令在哪里?

a.键入echo $HOME,确认自己的主目录;主目录为/home/yuanye

b.键入echo $PA TH,记下自己看到的目录表;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

c.键入which abcd,看看得到的错误信息;

再键入which ls 和which vi,对比刚刚得到的结果的目录是否在a.、b.

两题看到的目录表中;

/bin/ls /usr/bin/vi

3.ls 和cd 的使用:

a.键入ls,ls -l ,ls -a ,ls -al 四条命令,观察输出,说明四种不同使用方式的区别。

1. examples.desktop 公共的模板视频图片文档音乐桌面; 总计32

2.-rw-r--r-- 1 yuanye yuanye 357 2011-03-22 22:15 examples.desktop

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 公共的

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 模板

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 视频

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 图片

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 文档

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 音乐

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 桌面

3. . .fontconfig .local .Xauthority

.. .gconf .mozilla .xsession-errors

.bash_logout .gconfd .nautilus 公共的

.bashrc .gksu.lock .profile 模板

.cache .gnome2 .pulse 视频

.chewing .gnome2_private .pulse-cookie 图片

.config .gnupg .recently-used.xbel 文档

.dbus .gstreamer-0.10 .scim 音乐

.dmrc .gtk-bookmarks .sudo_as_admin_successful 桌面

.esd_auth .gvfs .update-manager-core

examples.desktop .ICEauthority .update-notifier

4. 总计156

drwxr-xr-x 28 yuanye yuanye 4096 2011-03-24 16:55 .

drwxr-xr-x 3 root root 4096 2011-03-22 22:15 ..

-rw-r--r-- 1 yuanye yuanye 220 2011-03-22 22:15 .bash_logout

-rw-r--r-- 1 yuanye yuanye 3115 2011-03-22 22:15 .bashrc

drwxr-xr-x 3 yuanye yuanye 4096 2011-03-22 23:30 .cache

drwx------ 2 yuanye yuanye 4096 2011-03-22 23:24 .chewing

drwxr-xr-x 4 yuanye yuanye 4096 2011-03-22 23:30 .config

drwx------ 3 yuanye yuanye 4096 2011-03-22 22:31 .dbus

-rw------- 1 yuanye yuanye 49 2011-03-24 16:54 .dmrc

-rw------- 1 yuanye yuanye 16 2011-03-22 22:31 .esd_auth

-rw-r--r-- 1 yuanye yuanye 357 2011-03-22 22:15 examples.desktop

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:15 .fontconfig

drwx------ 4 yuanye yuanye 4096 2011-03-24 16:54 .gconf

drwx------ 2 yuanye yuanye 4096 2011-03-24 16:56 .gconfd

-rw-r----- 1 yuanye yuanye 0 2011-03-22 23:19 .gksu.lock

drwx------ 6 yuanye yuanye 4096 2011-03-22 23:20 .gnome2

drwx------ 2 yuanye yuanye 4096 2011-03-22 22:32 .gnome2_private

drwx------ 2 yuanye yuanye 4096 2011-03-22 22:31 .gnupg

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 22:32 .gstreamer-0.10

-rw-r--r-- 1 yuanye yuanye 156 2011-03-24 16:55 .gtk-bookmarks

dr-x------ 2 yuanye yuanye 0 2011-03-24 16:54 .gvfs

-rw------- 1 yuanye yuanye 479 2011-03-24 16:54 .ICEauthority

drwx------ 3 yuanye yuanye 4096 2011-03-22 23:30 .local

drwx------ 4 yuanye yuanye 4096 2011-03-22 23:29 .mozilla

drwxr-xr-x 3 yuanye yuanye 4096 2011-03-22 22:32 .nautilus

-rw-r--r-- 1 yuanye yuanye 675 2011-03-22 22:15 .profile

drwx------ 2 yuanye yuanye 4096 2011-03-24 16:54 .pulse

-rw------- 1 yuanye yuanye 256 2011-03-22 22:31 .pulse-cookie

-rw------- 1 yuanye yuanye 861 2011-03-22 23:30 .recently-used.xbel

drwx------ 3 yuanye yuanye 4096 2011-03-22 23:24 .scim

-rw-r--r-- 1 yuanye yuanye 0 2011-03-22 22:35 .sudo_as_admin_successful drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 22:33 .update-manager-core drwx------ 2 yuanye yuanye 4096 2011-03-22 22:32 .update-notifier

-rw------- 1 yuanye yuanye 117 2011-03-24 16:54 .Xauthority

-rw-r--r-- 1 yuanye yuanye 3385 2011-03-24 16:56 .xsession-errors

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 公共的

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 模板

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 视频

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 图片

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 文档

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 音乐

drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 桌面

b.利用cd 转到/bin,/sbin ,/etc ,/dev,再利用ls 列出各个目录的内容,如果

"迷路",可以利用pwd 确定位置,或键入cd ,cd ~ 观察效果.

cd ,cd ~的区别: 1. bash dnsdomainname mountpoint sleep

bunzip2 dumpkeys mt stty

bzcat echo mt-gnu su

bzcmp ed mv sync

bzdiff egrep nano tailf

bzegrep false nc tar

bzexe fgconsole nc.traditional tempfile

bzfgrep fgrep netcat touch

bzgrep fuser netstat true

bzip2 fusermount ntfs-3g ulockmgr_server

bzip2recover grep ntfs-3g.probe umount

bzless gunzip open uname

bzmore gzexe openvt uncompress

cat gzip pidof unicode_start

chgrp hostname ping vdir

chmod ip ping6 which

chown kbd_mode ps zcat

chvt kill pwd zcmp

cp ld_static rbash zdiff

cpio ln readlink zegrep

dash loadkeys rm zfgrep

date login rmdir zforce

dbus-cleanup-sockets ls rnano zgrep

dbus-daemon lsmod run-parts zless

dbus-uuidgen mkdir sed zmore

dd mknod setfont znew

df mktemp setupcon

dir more sh

dmesg mount sh.distrib

2. acpi_available getty mii-tool resize_reiserfs

alsa grub-install mkdosfs rmmod

alsactl halt mke2fs route

apm_available hdparm mkfs rtacct

apparmor_parser hwclock mkfs.bfs rtmon

badblocks ifconfig mkfs.cramfs runlevel

blkid ifdown mkfs.ext2 sfdisk blockdev ifup mkfs.ext3 shadowconfig brltty init mkfs.ext4 shutdown

brltty-setup initctl mkfs.ext4dev slattach

cfdisk insmod mkfs.minix ss

crda installkernel mkfs.msdos start

ctrlaltdel ip mkfs.reiserfs start-stop-daemon debugfs ip6tables mkfs.vfat status debugreiserfs ip6tables-restore mkreiserfs stop

depmod ip6tables-save mkswap sulogin dhclient ipmaddr modinfo swapoff dhclient3 iptables modprobe swapon dhclient-script iptables-restore mount.fuse sysctl

dmsetup iptables-save mount.ntfs syslogd

dosfsck iptunnel mount.ntfs-3g tc

dosfslabel isosize mount.vmhgfs telinit

dumpe2fs iwconfig nameif tune2fs

e2fsck iwevent on_ac_power udevadm

e2image iwgetid pam_tally udevd

e2label iwlist parted umount.hal

e2undo iwpriv partprobe unix_chkpwd fdisk iwspy pccardctl unix_update findfs kbdrate pivot_root update-grub

fsck killall5 plipconfig usplash

fsck.cramfs klogd poweroff usplash_down fsck.ext2 ldconfig rarp usplash_write fsck.ext3 ldconfig.real raw vol_id

fsck.ext4 logd readahead-list vstp

fsck.ext4dev logsave readahead-watch wpa_action fsck.minix losetup reboot wpa_cli

fsck.msdos lrm-manager regdbdump wpa_supplicant fsck.nfs lsmod reiserfsck

fsck.reiserfs lspcmcia reiserfstune

fsck.vfat MAKEDEV resize2fs

3. acpi login.defs

adduser.conf logrotate.conf

adjtime logrotate.d

alsa lsb-base

alternatives lsb-base-logging.sh

anacrontab lsb-release

apm ltrace.conf apparmor magic

apparmor.d magic.mime

apport mailcap

apt mailcap.order

at.deny manpath.config

avahi mime.types

bash.bashrc mke2fs.conf

bash_completion modprobe.d

bash_completion.d modules bindresvport.blacklist mono

blkid.tab motd

blkid.tab.old motd.tail

bluetooth mtab

bogofilter.cf mtools.conf

bonobo-activation nanorc

brlapi.key netscsid.conf

brltty network

brltty.conf NetworkManager

ca-certificates networks

ca-certificates.conf nsswitch.conf

calendar obex-data-server chatscripts openoffice checkbox.d opt

compizconfig pam.conf ConsoleKit pam.d

console-setup pango

console-tools papersize

cron.d passwd

cron.daily passwd-

cron.hourly pcmcia

cron.monthly perl

crontab pm

cron.weekly pnm2ppa.conf

cups PolicyKit

dbus-1 popularity-contest.conf debconf.conf power

debian_version ppp

default profile

defoma profile.d

deluser.conf protocols

depmod.d pulse dhcp3 purple dictionaries-common python

dm python2.6 doc-base rc0.d

dpkg rc1.d

e2fsck.conf rc2.d emacs rc3.d environment rc4.d esound rc5.d event.d rc6.d firefox-3.0 rc.local

fonts rcS.d foomatic readahead fstab resolvconf fuse.conf resolv.conf gai.conf rmt

gamin rpc

gconf samba gdm sane.d gimp scim gnome screenrc gnome-app-install scsi_id.config gnome-system-tools securetty gnome-vfs-2.0 security gnome-vfs-mime-magic sensors.conf gre.d services groff sgml

group shadow group- shadow- grub.d shells gshadow skel gshadow- sound

gtk-2.0 ssh

hal ssl hdparm.conf sudoers hesiod.conf sysctl.conf host.conf sysctl.d hostname syslog.conf hosts terminfo hosts.allow timezone

hosts.deny tpvmlp.conf

hp ts.conf

ifplugd ucf.conf

init.d udev

initramfs-tools ufw

inputrc updatedb.conf

iproute2 updatedb.conf.BeforeVMwareToolsInstall

issue update-manager

https://www.360docs.net/doc/047013356.html, update-motd.d

kbd update-notifier

kernel usplash.conf

kernel-img.conf vim

laptop-mode vmware-tools

ldap w3m

ld.so.cache wgetrc

ld.so.conf wodim.conf

ld.so.conf.d wpa_supplicant

lftp.conf X11

libpaper.d xdg

locale.alias xml

localtime xulrunner-1.9

logcheck zsh_command_not_foun

4. adsp loop7 ram7 tty15 tty43 usbdev1.1_ep00

agpgart lp0 ram8 tty16 tty44 usbdev1.1_ep81

audio mapper ram9 tty17 tty45 usbdev2.1_ep00

block mem random tty18 tty46 usbdev2.1_ep81

bus midi rtc tty19 tty47 usbmon0

cdrom1 mixer rtc0 tty2 tty48 usbmon1

char net scd0 tty20 tty49 usbmon2

console network_latency sda tty21 tty5 vcs

core network_throughput sda1 tty22 tty50 vcs1

cpu_dma_latency null sda2 tty23 tty51 vcs2

disk oldmem sda5 tty24 tty52 vcs3

dmmidi parport0 sequencer tty25 tty53 vcs4

dsp pktcdvd sequencer2 tty26 tty54 vcs5

ecryptfs port sg0 tty27 tty55 vcs6

fd ppp sg1 tty28 tty56 vcs7

fd0 psaux shm tty29 tty57 vcs8

full ptmx snapshot tty3 tty58 vcsa

fuse pts snd tty30 tty59 vcsa1

hpet ram0 sndstat tty31 tty6 vcsa2

initctl ram1 sr0 tty32 tty60 vcsa3

input ram10 stderr tty33 tty61 vcsa4

kmem ram11 stdin tty34 tty62 vcsa5

kmsg ram12 stdout tty35 tty63 vcsa6

log ram13 tty tty36 tty7 vcsa7

loop0 ram14 tty0 tty37 tty8 vcsa8

loop1 ram15 tty1 tty38 tty9 vmci

loop2 ram2 tty10 tty39 ttyS0 vsock

loop3 ram3 tty11 tty4 ttyS1 xconsole

loop4 ram4 tty12 tty40 ttyS2 zero

loop5 ram5 tty13 tty41 ttyS3

loop6 ram6 tty14 tty42 urandom

区别:

(二)基本操作

1.用cp 将/usr/share 目录下的exercise 子目录连同目录下的文件拷贝到自己的主目录下,然后进入自己的exercise 目录:cp -r /usr/share ./.

2.输入/输出重定向和cat,more 等显示命令的配合使用:

a.输入cat 命令列出目录下longtext 文件中的内容;

b.输入cat 命令列出目录下longtext 文件中的内容,是否发现一屏显示不完?

c.使用more 命令列出longtext 的内容;

d.输入cat hello.txt> hello2.txt,再输入cat hello.txt>>hello2.txt,再检查hello2.txt的内容有何变化;说明>与>>的区别。

e.对比两条命令: more longtext 和cat longtext | more ,两者有何不同点?

f.执行命令echo

g.输入命令cat <

h.设计一条命令,使该命令可以从标准输出中读入;

( 参考答案:cat < hello3.txt )

3.特殊字符:

输入cat [also a text].txt,看看能否打开目录下的[also a text].txt文

件,若不能,该怎么办?

(参考答案:cat \[also \ a\ text\].txt)

4.文件链接:

a.用ln 命令为目录下的longtext文件建立一个硬链接,链接名为longtext2,然后

把longtext复制一个新文件longtext3,用cat 命令将hello.txt 的内容追加到longtext

的末尾,再用diff 命令比较longtext,longtext2和longtext3,看看有什么结果,特别

是比较一下longtext和longtext2是否相同;

b.用ln 命令给longtext3建立一个符号链接longtext4,用cat 命令看看longtext4;

然后删去longtext3,再用cat 命令看看longtext4,是否有什么不同?

c.删去longtext2,看看能否用cat 命令看到longtext?

d.试着执行ln -s ./abcde ./nulllink,看看是否能建立文件链接.

5.查找命令find:

用find 命令查找当前目录下所有以del开头或以del结尾的文件,并将其删除,要求

删除前征求用户许可.

(参考答案:

find ./ (-name del/* -o -name \*del \) -exec rm -i {} \;

find ./ (-name del/* -o -name \*del \) -exec -ok rm {} \;)

6.文件的属性:

a.用ls -l 列出exercise 目录下所有的文件和目录,观察其权限位;

b.将hello2.txt 的读权限去掉,看看还能否用cat 打开该文件;

c.将program 目录的读权限去掉,看看是否能用ls 命令看到其中内容?

(三)Shell程序设计

编写一个Shell过程完成如下功能:

1.合并两个$1、$2文件为$3,并显示。

2.如果缺少$3,那么先报告缺少$3,将合并后的内容输出到CHENG.TXT,显示。

3.如果缺少$2、$3那么先报告缺少$2、$3,只显示$1的内容。

实验2:

实验3:

实验4:

二、考核方式

1.上机验收,

2.上机报告:对实验一至四拓写上机报告(实验四按照上机题目内容顺序写报告)并附源

程序,对实验结果的分析。

杭电计组实验报告10

计组实验十 老师:包健 一、源代码测试模块代码: module Top( inputinclk, inputmem_clk, inputrst, outputreg[7:0] LED, input [3:0] SW ); wireclk; MyButtonmb( .clk_100MHz(mem_clk), .BTN(inclk), .BTN_Out(clk) ); wire [31:0] ALU_F; wire [31:0] M_R_Data; wire ZF; wire OF; wire [31:0]PC; My_I_CPUmy_i_cpu( .clk(clk), .mem_clk(mem_clk), .rst(rst), .ALU_F(ALU_F), .M_R_Data(M_R_Data), .ZFF(ZF), .OF(OF), .PC_out(PC) ); always@(*) begin case(SW) 4'd0:LED=ALU_F[7:0]; 4'd1:LED=ALU_F[15:8]; 4'd2:LED=ALU_F[23:16]; 4'd3:LED=ALU_F[31:24]; 4'd4:LED=M_R_Data[7:0];

4'd5:LED=M_R_Data[15:8]; 4'd6:LED=M_R_Data[23:16]; 4'd7:LED=M_R_Data[31:24]; 4'd8:LED={ZF,6'd0,OF}; 4'd12:LED=PC[7:0]; 4'd13:LED=PC[15:8]; 4'd14:LED=PC[23:16]; 4'd15:LED=PC[31:24]; default:LED=8'b0000_0000; endcase end endmodule 顶层模块代码: moduleMy_I_CPU( inputclk, inputmem_clk, inputrst, output [31:0] ALU_F, output [31:0] M_R_Data, output ZFF, output OF, output [31:0]PC_out ); //wire clk_n = ~clk; wire[31:0] codes; wire [31:0]PC_new; reg [31:0]PC; Inst_Fetch1 inst_fetch( .PC(PC), .rst(rst), .clk(clk), .Inst_codes(codes), .PC_new(PC_new) ); wire[5:0] OP; wire[5:0] func;

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

操作系统上机实验报告(西电)

操作系统上机题目 一、题目 实验1:LINUX/UNIX Shell部分 (一)系统基本命令 1.登陆系统,输入whoami 和pwd ,确定自己的登录名和当前目录; 登录名yuanye ,当前目录/home/yuanye 2.显示自己的注册目录?命令在哪里? a.键入echo $HOME,确认自己的主目录;主目录为/home/yuanye b.键入echo $PA TH,记下自己看到的目录表;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games c.键入which abcd,看看得到的错误信息; 再键入which ls 和which vi,对比刚刚得到的结果的目录是否在a.、b. 两题看到的目录表中; /bin/ls /usr/bin/vi 3.ls 和cd 的使用: a.键入ls,ls -l ,ls -a ,ls -al 四条命令,观察输出,说明四种不同使用方式的区别。 1. examples.desktop 公共的模板视频图片文档音乐桌面; 总计32 2.-rw-r--r-- 1 yuanye yuanye 357 2011-03-22 22:15 examples.desktop drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 公共的 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 模板 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 视频 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 图片 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 文档 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 音乐 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 桌面 3. . .fontconfig .local .Xauthority .. .gconf .mozilla .xsession-errors .bash_logout .gconfd .nautilus 公共的 .bashrc .gksu.lock .profile 模板 .cache .gnome2 .pulse 视频 .chewing .gnome2_private .pulse-cookie 图片 .config .gnupg .recently-used.xbel 文档 .dbus .gstreamer-0.10 .scim 音乐 .dmrc .gtk-bookmarks .sudo_as_admin_successful 桌面 .esd_auth .gvfs .update-manager-core

计组实验报告

计算机组成原理实验报告 实验1:VERILOG 设计基础 专业班级:14级计算机二班 学号:14048001 姓名:杨娜 学号:14048003 姓名:周蓉 实验地点:理工楼901 实验时间:2016年5月14日

实验十VGA显示控制器的设计 一、实验目的 1、学习VERILOG的基本语法和编程规则 2、掌握通用寄存器等常用基本数字模块的VERILOG描述和基本设计方法 3、理解带使能控制和异步清零的8位寄存器的设计原理 4、掌握使用VERILOG设计和验证带使能控制和异步清零的8位寄存器的方法 5、掌握移位寄存器的设计方法 二、实验任务 1、设计一个带使能控制和异步清零的8位寄存器REG8X,实现8位输入的锁存,在时钟的上升沿处得到一个8位的输出和一个8位的反向输出,将结果显示在发光二极管。 模块的端口描述如下: 模块的参考物理结构如下: R7 R6 R i R 0 7 6 i 0 带使能控制和异步清零的8位寄存器 模块的使用注意事项

1.数据源D(7..0)一直加在寄存器的数据输入端; 2.周期性的时钟信号Clock一直加在寄存器的时钟输入端 3.使能信号Enable控制寄存器是否接受数据。当Enable = '0'时,寄存器不 接受数据,保持原来的状态不变;当Enable = '1'时,在时钟信号Clock正 跳变时,寄存器接受并保存当时D(7..0)的数据; 4.本寄存器其它方面的功能与上述的寄存器相同。 完成的参考电路图如下:dout=q 2、设计一个有左、右移位功能的8位寄存器REGSHIFT8,并仿真验证。

三、实验内容 1、通过输入数据先进行计算,并通过实验进行验证REG8X。 (1)、将清零信号Resetn(sw17)设为0,将输入信号D(sw7~sw0)设为10101010,观察输出信号Q(ledr7~ledr0)和Qb(ledg7~ledg0),观察并记录输出。 (2)、将清零信号Resetn(sw17)设为1,在时钟信号处输入一个上升沿(按下key0),观察并记录输出。 (3)、将输入信号D(sw7~sw0)设为01010101,观察并记录输出。 (4)、在时钟信号处输入一个上升沿(按下key0),观察并记录输出。 (5)、自行完善设计表格,观察并记录测试输出。 实验数据表 2、通过输入数据先进行计算,并通过实验进行验证REGSHIFT8。 (1)、测试清零信号Resetn (2)、测试移位功能 (3)、测试寄存功能 (4)、自行设计表格观察并记录测试输出。 实验数据表

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科0901 学号: 0909090310

指导老师:宋虹

目录 课程设计内容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------6 文件系统的层次结构和功能模块 ---------------------6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录-------------------------------------------------- 12

课程设计内容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在内存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全 可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

西安电子科技大学汤子赢《操作系统原理》的答案

1. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合? a. 首先由编译程序将用户源代码编译成若干目标模块,再由链接程序将编译后形成的目标模块和所需的库函数链接在一起,组成一个装入模块,再由装入程序将装入模块装入内存; b. 装入模块的方式有: 绝对装入方式,可重定位方式和动态运行时装入方式; c. 绝对装入方式适用于单道程序环境下; d. 可重定位方式适用于多道程序环境下; e. 动态运行时装入方式也适用于多道程序环境下. 2. 何谓静态链接及装入时动态链接和运行时的动态链接? a. 静态链接是指事先进行链接形成一个完整的装入模块,以后不再拆开的链接方---式; b. 装入时动态链接是指目标模块在装入内存时,边装入边链接的链接方式; c. 运行时的动态链接是将某些目标模块的链接推迟到执行时才进行. 3. 在进行程序链接时,应完成哪些工作? a. 对相对地址进行修改; b. 变换外部调用符号. 4. 在动态分区分配方式中,可利用哪些分区分配算法? a. 首次适应算法; b. 循环首次适应算法; c. 最佳适应算法. 5. 在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链? 应在每个分区的起始地址部分,设置一些用于控制分区分配的信息,以及用于链接各分区的前向指针; 在分区尾部则设置一后向指针,通过前,后向指针将所有的分区链接成一个双向链. 6. 为什么要引入动态重定位?如何实现? a. 为了在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位. b. 可在系统中增加一个重定位寄存器,用它来装入(存放)程序在内存中的起始地址,程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的,从而实现动态重定位. 7. 试用类Pascal 语言来描述首次适应算法进行内存分配的过程. (略) 8. 在采用首次适应算法回收内存时,可能出现哪几种情况?应怎样处理这些情况? a. 回收区与插入点的前一个分区相邻接,此时可将回收区与插入点的前一分区合并,不再为回收分区分配新表项,而只修改前邻接分区的大小; b. 回收分区与插入点的后一分区相邻接,此时合并两区,然后用回收区的首址作为新空闲区的首址,大小为两者之和; c. 回收区同时与插入点的前后两个分区邻接,此时将三个分区合并,使用前邻接分区的首址,大小为三区之和,取消后邻接分区的表项; d. 回收区没有邻接空闲分区,则应为回收区单独建立一个新表项,填写回收区的首址和大w w w .k h d a w .c o m 课后答案网

《 Windows7 操作系统》实验报告

实验(一) Windows 7基本操作 一、实验目的 1.掌握文件和文件夹基本操作。 2.掌握“资源管理器”和“计算机”基本操作。 二、实验要求 1.请将操作结果用Alt+Print Screen组合键截图粘贴在题目之后。 2.实验完成后,请将实验报告保存并提交。 三、实验内容 1.文件或文件夹的管理(提示:此题自行操作一遍即可,无需抓图)★期末机试必考题★ (1) 在D:盘根目录上创建一个名为“上机实验”的文件夹,在“上机实验”文件夹中创建1个名为“操作系统上机实验”的空白文件夹和2个分别名为“2.xlsx”和“3.pptx”的空白文件,在“操作系统上机实验”文件夹中创建一个名为“1.docx”的空白文件。 (2) 将“1.docx”改名为“介绍信.docx”;将“上机实验”改名为“作业”。 (3) 在“作业”文件夹中分别尝试选择一个文件、同时选择两个文件、一次同时选择所有文件和文件夹。 (4) 将“介绍信.docx”复制到C:盘根目录。 (5) 将D:盘根目录中的“作业”文件夹移动到C:盘根目录。 (6) 将“作业”文件夹中的“2.xlsx”文件删除放入“回收站”。 (7) 还原被删除的“2.xlsx”文件到原位置。 2.搜索文件或文件夹,要求如下: 查找C盘上所有以大写字母“A”开头,文件大小在10KB以上的文本文件。(提示:搜索时,可以使用“?”和“*”。“?”表示任意一个字符,“*”表示任意多个字符。)

3. 在桌面上为C:盘根目录下的“作业”文件夹创建一个桌面快捷方式。★期末机试必考题★ 3.“计算机”或“资源管理器”的使用 (1) 在“资源管理器”窗口,设置以详细信息方式显示C:\WINDOWS中所有文件和文件夹,使所有图标按类型排列显示,并不显示文件扩展名。(提示:三步操作全部做完后,将窗口中显示的最终设置结果抓一张图片即可) (2) 将C:盘根目录中“介绍信.docx”的文件属性设置为“只读”和“隐藏”,并设置在窗口中显示“隐藏属性”的文件或文件夹。(提示:请将“文件夹”对话框中选项设置效果与C:盘根目录中该文件图标呈现的半透明显示效果截取在一整张桌面图片中即可) 4.回收站的设置 设置删除文件后,不将其移入回收站中,而是直接彻底删除功能。

计组-加法器实验报告

半加器、全加器、串行进位加法器以及超前进位加法器 一、实验原理 1.一位半加器 A和B异或产生和Sum,与产生进位C 2.一位全加器 将一位半加器集成封装为halfadder元件,使用两个半加器构成一位的全加器 3.4位串行进位加法器 将一位全加器集成封装为Fulladder元件,使用四个构成串行进位加法器

4.超前进位加法器(4位) ⑴AddBlock 产生并行进位链中的ti(即Cthis)和di(即Cpass),以及本位结果Sum ⑵进位链(Cmaker) 四位一组并行进位链,假设与或非门的级延迟时间为1.5ty,与非门的延迟时间为1ty,在di和ti产生之后,只需2.5ty就可产生所有全部进位

⑶超前进位加法器 将以上二者结合起来即可完成,A和B各位作为各个AddBlock的输入,低一位的进位Ci-1作为本位AddBlock的C-1的输入。各个AddBlock输出的C_this和C_pass作为对应的Cmaker的thisi和passi的输入。

二、实验器材 QuartusII仿真软件,实验箱 三、实验结果 1.串行进位加法器结果 2.超前进位加法器结果

四、实验结果分析 1.实验仿真结果显示串行加法器比超前进位加法器快,部分原因应该是电路结构优化 不到位。另外由于计算的位数比较少,超前进位加法链结构较复杂,所以优势没体现出来,反倒运作的更慢一点。当位数增加的时候,超前进位加法器会比串行的更快。 2.波形稳定之前出现上下波动,应该与“竞争冒险”出现的情况类似,门的延迟和路径 的不同导致了信号变化时到达的时间有先有后,因此在最终结果形成前出现了脉冲尖峰和低谷;另外也可能部分原因由于电路结构优化的不到位所致

实时操作系统报告

实时操作系统课程实验报告 专业:通信1001 学号:3100601025 姓名:陈治州 完成时间:2013年6月11日

实验简易电饭煲的模拟 一.实验目的: 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,基于多任务的模式的编程方法。锻炼综合应用多任务机制,任务间的通信机制,内存管理等的能力。 二.实验要求: 1.按“S”开机,系统进入待机状态,时间区域显示当前北京时间,默认模式“煮饭”; 2.按“C”选择模式,即在“煮饭”、“煮粥”和“煮面”模式中循环选择; 3.按“B”开始执行模式命令,“开始”状态选中,时间区域开始倒计时,倒计时完成后进入“保温”状态,同时该状态显示选中,时间区域显示保温时间; 4.按“Q”取消当前工作状态,系统进入待机状态,时间区域显示北京时间,模式为当前模式; 5.按“X”退出系统,时间区域不显示。 6.煮饭时长为30,煮粥时长为50,煮面时长为40. 三.实验设计: 1.设计思路: 以老师所给的五个程序为基础,看懂每个实验之后,对borlandc的操作有了大概的认识,重点以第五个实验Task_EX为框架,利用其中界面显示与按键扫描以及做出相应的响应,对应实现此次实验所需要的功能。 本次实验分为界面显示、按键查询与响应、切换功能、时钟显示与倒计时模块,综合在一起实验所需功能。 2.模块划分图: (1)界面显示: Main() Taskstart() Taskstartdispinit() 在TaskStartDispInit()函数中,使用PC_DispStr()函数画出界面。

(2)按键查询与响应: Main() Taskstart() 在TaskStart()函数中,用if (PC_GetKey(&key) == TRUE)判断是否有按键输入。然后根据key 的值,判断输入的按键是哪一个;在响应中用switch语句来执行对应按键的响应。 (3)切换功能: l计数“C”按 键的次数 M=l%3 Switch(m) M=0,1,2对应于煮饭,煮粥,煮面,然后使用PC_DispStr()函数在选择的选项前画上“@”指示,同时,在其余两项钱画上“”以“擦出”之前画下的“@”,注意l自增。 四.主要代码: #include "stdio.h" #include "includes.h" #include "time.h" #include "dos.h" #include "sys/types.h" #include "stdlib.h" #define TASK_STK_SIZE 512 #define N_TASKS 2 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; INT8U TaskData[N_TASKS];

操作系统题库答案

第一部分引言 一、选择题 1、下列选择中,哪些不是操作系统关心的主要问题。(浙大2003) (1)管理计算机裸机;(2)设计提供用户与计算机硬件系统间的界面; (3)管理计算机系统资源;(4)高级程序设计语言的编译器。 2、从用户角度看,操作系统是()。 A、计算机资源的管理者; B、计算机工作流程的组织者; C、用户与计算机之间的接口; D、由按层次结构组成的软件模块的集合。 3、引入多道程序技术的前提条件之一是系统具有()(西电00) (1)多个cpu;(2)多个终端;(3)中断功能;(4)分时功能 4、操作系统是一种。 A.系统软件 B.系统硬件 C.应用软件 D.支援软件 5、操作系统允许一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。 A.实时 B.分时 C.分布式 D.单用户 6、如果操作系统具有很强的交互性,可同时供多个用户使用,但时间响应不太及时,则属于分时操作系统类型;如果操作系统可靠,时间响应及时但仅有简单的交互能力则属于实时操作系统类型。 二、判断题 1、所谓多道程序设计,即指每一时刻有若干个进程在执行。(错)(南京大学00) 2、采用多道程序设计的系统中,系统的程序道数越多,系统效率越高。(错)(西电01) 3、由于采用了分时技术,用户可以独占计算机的资源。(错) 4、多道程序设计是利用了CPU和通道的并行工作来提高系统利用率的。(错) 5、多道程序设计可以缩短系统中作业的执行时间。(错) 6、在一个兼顾分时操作系统和批处理系统中,通常把终端作业称为前台作业,而把批处理型作业称为后台作业。(错)

7、批处理系统不允许用户随时干预自己程序的运行。(对) 8、Windows操作系统完全继承了分时系统的特点。(对) 9、并发是并行的不同表述,其原理相同。(错)(清华1998) 10、在单处理机系统中实现并发技术后,判断: (1)各进程在某一时刻并行运行,cpu与外设间并行工作;(错) (2)各进程在一个时间段内并行运行,cpu与外设间串行工作;(错) (3)各进程在一个时间段内并行运行,cpu与外设间并行工作。(对)(四川大学01) 11、在单CPU环境下,不宜使用多道程序设计技术。(错) 12、并发性是指若干事件在同一时刻发生。(错) 13、实时操作系统通常采用抢占式调度。(对) 14、UNIX操作系统是著名的()系统。 A.分时 B.多道批处理 C.实时 D.分布式 15、允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机的操作系统是()操作系统。 A. 网络 B. 分布式 C. 分时 D. 实时 三、计算题 1、若程序A和B单独执行时分别用TA和TB,TA=1h,TB=1.5h,其中处理器工作时间分别为TA=18min,TB=27min。如果采用多道程序设计方法,让A,B并行工作,假定处理器利用率达到50%,另加15min系统开销,请问系统效率提高百分之几? 解: (18+27)/0.5=90 ((60+90)-(90+15))/(60+90)=0.3 0.3*100%=30% 2、在操作系统中引入并发可以提高系统效率,若有两个程序A和B,A程序执行时所做的工作按次序需要用cpu:10s,设备1:5s,cpu:5s,设备2:10s,cpu:10s;程序B执行时所做的工作按次序需要用设备1:10s,cpu:10s,设备2:5s,cpu:5s,设备2:10s。如果在顺序环境下执行两个程序,则cpu的利用率为();如果在并发环境下执行两个程序,则cpu的利用率为()。 3、设某计算机系统有一个cpu、一台输入设备、一台打印机。现有两个进程同时进入就绪

操作系统上机实验报告

大连理工大学实验报告 学院(系):专业:班级: 姓名:学号:组:___ 实验时间:实验室:实验台: 指导教师签字:成绩: 实验名称:进程控制 一、实验目的和要求 (1)进一步加强对进程概念的理解,明确进程和程序的区别 (2)进一步认识并发执行的实质 二、实验环境 在windows平台上,cygwin模拟UNIX运行环境 三、实验内容 (1) getpid()---获取进程的pid 每个进程都执行自己独立的程序,打印自己的pid; (2) getpid()---获取进程的pid 每个进程都执行自己独立的程序,打印自己的pid; 父进程打印两个子进程的pid;

(3)写一个命令处理程序,能处理max(m,n), min(m,n),average(m,n,l)这几个命令(使用exec函数族)。 Max函数 Min函数 Average函数 Exec函数族调用 四、程序代码 五、运行结果 六、实验结果与分析 七、体会 通过这次上机,我了解了fork函数的运行方法,同时更深刻的了解了进程的并行执行的本质,印证了在课堂上学习的理论知识。同时通过编写实验内容(3)的命令处理程序,学会了exec函数族工作原理和使用方法。通过这次上机实验让我加深了对课堂上学习的理论知识的理解,收获很多。

大连理工大学实验报告 学院(系):专业:班级: 姓名:学号:组:___ 实验时间:实验室:实验台: 指导教师签字:成绩: 实验名称:进程通讯 一、实验目的和要求 了解和熟悉UNIX支持的共享存储区机制 二、实验环境 在windows平台上,cygwin模拟UNIX运行环境 三.实验内容 编写一段程序, 使其用共享存储区来实现两个进程之间的进程通讯。进程A创建一个长度为512字节的共享内存,并显示写入该共享内存的数据;进程B将共享内存附加到自己的地址空间,并向共享内存中写入数据。 四、程序代码 五、运行结果 六、实验结果与分析 七、体会

计组课设实验报告

《计算机组成原理与系统结构》课程设计 实 验 报 告 课题:两个16位二进制数加法计算 班级: 成员: 完成日期:2013年10月11日

一:课程设计步骤 1.确定设计目标 综合考虑实验条件及自身能力水平,以及设计功能的可靠性和实用性,我们小组决定将设计目标定为“两个16位二进制数相加”。分两次分别输入两个加数的低八位和高八位,输出两个16位二进制数相加的结果。 2.确定指令系统 (1)数据格式 模型机规定数据采用定点整数补码表示,字长为8位,其格式如下: 7 6 5 4 3 2 1 0 符号尾数 (2)指令格式 模型机设计四大类指令共16条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。 ①算术逻辑指令 设计九条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下: 7 6 5 4 3 2 1 0 OP-CODE RS RD 其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,并规定: RS或RD 选定的寄存器 00 01 10 R0 R1 R2 ②I/O指令 输入(1N)和输入(OUT)指令采用单字节指令,其格式如下: 7 6 5 4 3 2 1 0 OP-CODE addr RD 其中,addr=01时,选中“INPUT DEVICE”中的开关组作为输入设备,addr=10时,选中“INPUT DEVICE”中的数码块作为输入设备。 ③访问指令及转移指令 模型机设计两条访问指令,即存数(STA)、取数(LDA),两条颛臾指令,即无条件转移(JMP)、结果为零或有进位转移(BZC),指令格式如下: 7 6 5 4 3 2 1 0 00 M OP-CODE RD D 其中,OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用)。D为位移量(正负均可),M为寻址模式,其定义如下: 寻址模式有效地址E 说明 00 E=D 直接寻址

西电软院操作系统课程设计报告样本

操作系统课程设计 实验报告册 班级: 学号: 姓名: 教师: 褚华

目录 实验说明 重要提示 实验1 系统调用 实验2 内核模块 实验3 文件系统 实验4 设备管理

实验说明 1.实验做为学习的重要促进手段, 是为了深化对理论的理解, 锻炼实践动手能力。 2.实验同时也作为考核的手段。 3.实验内容会在课程进行中下达, 而且会分次地、部分地被抽查。 4.课程结束时, 要求把所有的实验整理成一个完整的电子文档并上交, 做为最后成绩的评定依据。 5.如果有兴趣的合适的题目, 也可自己选题目。 格式说明 1.本文档文件名命名为”学号-姓名”, 如”13071000_小王”。 2.留白部分不足的自己调整长度, 也可加页( 增加内容应在表格内) 。 3.每次的实验报告都要在这个文件中( 按照实验次序依次) 增加, 而不是每次一个新的word文件。 4.本文档保存为doc格式( 请勿用Word 的docx格式) 。 重要提示: 1.实验正文建议使用小四号或五号宋体。 2.若附加图形, 则请直接嵌入到实验手册相应位置。

3.各实验的源程序, 请按实验分目录存放, 如第一个实验的源程序存放在目录lab1下, 第二个实验的源程序存放在目录lab2下等等, 依次类推。 可互相讨论, 但严禁抄袭网络或同学的实验结果。

要给linux增加系统调用, 能够用修改内核源码并重新编译的方法实现一: 基本过程是 1.在系统调用表文件中给要增加的一个系统调用的名字 2.在系统调用号文件中给要新增的系统调用分配一个系统调用号 3.增加系统调用声明 4.添加系统调用的实现 5.重新编译内核 6.编写测试驱动函数, 测试系统调用是否添加成功 一: 在系统调用表文件中增加系统调用的名字 二: 在系统调用号文件中给要新增的系统调用分配一个系统调用号 三: 增加系统调用声明 四: 添加系统调用的实现

操作系统实验报告生产者与消费者问题模拟

操作系统上机实验报告 实验名称: 生产者与消费者问题模拟 实验目的: 通过模拟生产者消费者问题理解进程或线程之间的同步与互斥。 实验内容: 1、设计一个环形缓冲区,大小为10,生产者依次向其中写入1到20,每个缓冲区中存放一个数字,消费者从中依次读取数字。 2、相应的信号量; 3、生产者和消费者可按如下两种方式之一设计; (1)设计成两个进程; (2)设计成一个进程内的两个线程。 4、根据实验结果理解信号量的工作原理,进程或线程的同步\互斥关系。 实验步骤及分析: 一.管道 (一)管道定义 所谓管道,是指能够连接一个写进程和一个读进程的、并允许它们以生产者—消费者方式进行通信的一个共享文件,又称为pipe文件。由写进程从管道的写入端(句柄1)将数据写入管道,而读进程则从管道的读出端(句柄0)读出数据。(二)所涉及的系统调用 1、pipe( ) 建立一无名管道。 系统调用格式 pipe(filedes) 参数定义 int pipe(filedes); int filedes[2]; 其中,filedes[1]是写入端,filedes[0]是读出端。 该函数使用头文件如下: #include #inlcude #include 2、read( ) : 系统调用格式 read(fd,buf,nbyte) 功能:从fd所指示的文件中读出nbyte个字节的数据,并将它们送至由指针buf 所指示的缓冲区中。如该文件被加锁,等待,直到锁打开为止。 参数定义:

int read(fd,buf,nbyte); int fd; char *buf; unsigned nbyte; 3、write( ) 系统调用格式 read(fd,buf,nbyte) 功能:把nbyte 个字节的数据,从buf所指向的缓冲区写到由fd所指向的文件中。如文件加锁,暂停写入,直至开锁。 参数定义同read( )。 (三)参考程序 #include #include #include int pid1,pid2; main( ) { int fd[2]; char outpipe[100],inpipe[100]; pipe(fd); /*创建一个管道*/ while ((pid1=fork( ))==-1); if(pid1==0) { lockf(fd[1],1,0); /*把串放入数组outpipe中*/ sprintf(outpipe,child 1 is using pipe!); /* 向管道写长为50字节的串*/ write(fd[1],outpipe,50); sleep(5); /*自我阻塞5秒*/ lockf(fd[1],0,0); exit(0); } else { while((pid2=fork( ))==-1); if(pid2==0) { lockf(fd[1],1,0); /*互斥*/ sprintf(outpipe,child 2 is using pipe!); write(fd[1],outpipe,50); sleep(5); lockf(fd[1],0,0);

计组实验报告.

武汉大学计算机学院计算机科学与技术专业 CPU设计实验报告 实验名称:开放式实验CPU设计课题名称: 计算机组成原理 班级: 指导教师:徐爱萍 组长: 组员: 二零一五年三月

目录 目录 (1) 1 实验环境 (2) 1.1 Quartus Ⅱ介绍 (2) 1.2 硬件描述语言(VHDL) (3) 1.3实验的主要成果 (3) 2 实验要求 (5) 2. 1 指令格式要求 (5) 2. 2 指令流程及微信号序列分析 (6) 2.2.1 ADD指令分析 (6) 2.2.2 ADC指令分析 (7) 2.2.3 SUB指令分析 (7) 2.2.4 SBC指令分析 (7) 2.2.5 INC指令分析 (7) 2.2.6 DEC指令分析 (8) 2.2.7 SHL指令分析 (8) 2.2.8 SHR指令分析 (8) 2.2.9 MOVR指令分析 (8) 2.2.10 MOVD指令分析 (9) 2.2.11 LDRR指令分析 (9) 2.2.12 STRR指令分析 (10) 2.2.13 JMP指令分析 (10) 2.2.14 JRC指令分析 (11) 2.2.15 JRZ指令分析 (11) 2.2.16 JRS指令分析 (11) 2.2.17 CLC指令分析 (11) 2.2.18 STC指令分析 (11) 3.部件仿真实验 (11) 3.1 八个通用寄存器设计与仿真 (11) 3.1.1 设计代码 (11) 3.1.2 RTL连接图 (17) 3.1.3 仿真过程 (17) 3.2算术逻辑单元设计与仿真 (18) 3.2.1 设计代码 (18) 3.2.2 RTL连接图 (21) 3.2.3 仿真过程 (22) 4. CPU设计 (23) 4.1取指设计 (23) 4.2指令译码的设计 (25) 4.3执行部分设计 (28) 4.4存储器部分设计 (31) 4.5通用寄存器组设计 (32)

嵌入式实时操作系统实验报告

嵌入式实时操作系统实验报告 任务间通信机制的建立 系别计算机与电子系 专业班级***** 学生姓名****** 指导教师 ****** 提交日期 2012 年 4 月 1 日

一、实验目的 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,任务使用信号量的一般原理。掌握在基于优先级的可抢占嵌入式实时操作系统的应用中,出现优先级反转现象的原理及解决优先级反转的策略——优先级继承的原理。 二、实验内容 1.建立并熟悉Borland C 编译及调试环境。 2.使用课本配套光盘中第五章的例程运行(例5-4,例5-5,例5-6),观察运行结果,掌握信号量的基本原理及使用方法,理解出现优先级反转现象的根本原因并提出解决方案。 3.试编写一个应用程序,采用计数器型信号量(初值为2),有3个用户任务需要此信号量,它们轮流使用此信号量,在同一时刻只有两个任务能使用信号量,当其中一个任务获得信号量时向屏幕打印“TASK N get the signal”。观察程序运行结果并记录。 4. 试编写一个应用程序实现例5-7的内容,即用优先级继承的方法解决优先级反转的问题,观察程序运行结果并记录。 5.在例5-8基础上修改程序增加一个任务HerTask,它和YouTask一样从邮箱Str_Box里取消息并打印出来,打印信息中增加任务标识,即由哪个任务打印的;MyTask发送消息改为当Times为5的倍数时才发送,HerTask接收消息采用无等待方式,如果邮箱为空,则输出“The mailbox is empty”, 观察程序运行结果并记录。 三、实验原理 1. 信号量 μC/OS-II中的信号量由两部分组成:一个是信号量的计数值,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的等待任务表。用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成1,这样μC/OS-II 才能支持信号量。

最新第三版操作系统课后习题答案_西安电子科技大学资料

第三版操作系统课后习题答案西安电子科技大学第一章操作 系统引论 1. 设计现代OS的主要目标是什么? 方便性,有效性,可扩充性和开放性. 2. OS的作用可表现为哪几个方面? a. OS作为用户与计算机硬件系统之间的接口; b. OS作为计算机系统资源的管理者; c. OS实现了对计算机资源的抽象. 7. 实现分时系统的关键问题是什么?应如何解决? a. 关键问题:使用户能与自己的作业进行交互,即当用户在自己的终端上键 入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户。 b. 解决方法: ------对于及时接收,只需在系统中设置一多路卡,使主机能同时接收用户从各个终端上输入的数据;此外,还须为每个终端配置一个缓冲区,用来 暂存用户键入的命令(或数据)。 ------对于及时处理,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行,这样在不长的时 间内,能使每个作业都运行一次。 12. 试在交互性,及时性和可靠性方面,将分时系统与实时系统进行比较. a. 分时系统是一种通用系统,主要用于运行终端用户程序,因而它具有较强 的交互能力;而实时系统虽然也有交互能力,但其交互能力不及前。 b. 实时信息系统对实用性的要求与分时系统类似,都是以人所能接收的等待 时间来确定;而实时控制系统的及时性则是以控制对象所要求的开始截止时间和完成截止时间来确定的,因此实时系统的及时性要高于分时系统的及时性。 c. 实时系统对系统的可靠性要求要比分时系统对系统的可靠性要求高。 13. OS具有哪几大特征?它的最基本特征是什么? a. 并发性、共享性、虚拟性、异步性。 b. 其中最基本特征是并发和共享。(最重要的特征是并发性) 18. 是什么原因使操作系统具有异步性特征? 在多道程序环境下允许多个进程并发执行,但由于资源等因素的限制,进程的执行通常并非一气呵成,而是以走走停停的方式运行。内存中的每个进程在何时执行,何时暂停,以怎样的速度向前推进,每道程序总共需要多少时间才能完成,都是不可预知的,因此导致作业完成的先后次序与进入内存的次序并不完全一致。或者说,进程是以异步方式运行的。但在有关进程控制及同步机制等的支持下,只要运行环境相同,作业经多次运行,都会获得完全相同的结果,因而进程以异步的方式执行是系统所允许的。

相关文档
最新文档