课程 - 计算机组织与系统

来源:互联网 发布:精通matlab接口与编程 编辑:程序博客网 时间:2024/05/17 20:35

计算机组织与系统

对计算机的架构,以及基于架构的C语言程序设计,同时涉及到底层的汇编代码的讲解,以及C语言与汇编代码之间转换

课程内容

通过本课程的学习,对计算机系统如何执行程序和管理数据有一个全面的理解。学完本课程,将会成为一个更加高效的程序员。尤其在代码调试,性能调优,可移植性和稳定性方面。本课程包括如下内容:
C编程语言
数据表示
机器级代码
计算机算术
代码编译元素
内存和运行时性能优化
内存组织与管理
本课程使用的课本有:
  • Computer Systems - A programmer's perspective (3rd Edition) ; Author: Bryant & O'Hallaron
  • The C programming Language(2nd Edition) ; Author: Kernightan & Ritchie
  • Essential C

课程安排

从C语言基础知识开始讲起,然后讲述内存地址空间模型,以及计算机架构,

第一课 课程简介

课程目标
掌握利用复杂的内存和指针进行C代码的编写和调试
掌握正确的内存地址空间模型和运行行为

具有C代码与汇编代码相互转换的能力
能否识别运行性能的瓶颈以及改善的手段
具有移植代码到其他架构的能力
能够在Unix开发环境下有效的工作

理解计算机架构

有效的使用工具
- 选择正确的工具, 寻找信息。

第二课 熟悉类Unix系统环境

类Unix系统下常用命令

ls: 列出当前目录下的文件和目录
ls -a: 列出当前目录下的文件和目录
cd DIR: 进入DIR目录
cd .. : 进入当前目录的上一层目录
mkdir DIR: 创建一个新目录DIR
rmdir DIR: 删除一个空目录DIR
rmdir -rf DIR: 删除一个非空目录DIR

mv FILE1 FILE2:FILE1重命名为FILE2
mv FILE DIR: 移动文件FILE到DIR目录中
rm FILE: 删除文件FILE
cp FILE1 FILE2: 复制文件FILE1,并命名为FILE2

类Unix系统常用编辑器
VIM: 比较容易上手,
Emacs: 许多技巧和命令,学习曲线比较陡峭,不过掌握后,用起来非常顺手。

类Unix系统下man使用
man: 是manual的缩写,可以使用man来查对应的命令或C函数的用法
e.g.
man ls
LS(1)                                                                                         User Commands                                                                                        LS(1)


NAME
       ls - list directory contents


SYNOPSIS
       ls [OPTION]... [FILE]...


DESCRIPTION
       List information about the FILEs (the current directory by default).  Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.


       Mandatory arguments to long options are mandatory for short options too.


       -a, --all
              do not ignore entries starting with .


       -A, --almost-all
              do not list implied . and ..
......

类Unix系统下tab自动补齐
当输入一个长的命令时,可以使用tab键来自动补齐剩下的部分
若有部分命令的输入部分相同时,按下tab键时会列出可能的命令。

第三课 C语言基础知识

待补充

参考

1.  CS107 Computer organization and system
0 0