Homework


Items listed for future dates are tentative only to provide a rough guide to the course. Check this and the home page regularly for updates.
R lecture preparation/reading assignment P project assignment handed out
W written assignment handed out D project assignment due date

Assignments

Week Tuesday Due
2 PA: Type System Jan 6
6 Oct 23 [SPA] Ex. 7.10, 7.18, 8.3, 8.4, 9.4, 9.5(针对9.4给的程序) Oct 30
5 Oct 16 [SPA] Ex. 6.10, 7.4 Oct 23
4 Oct 9 [SPA] Ex. 4.12, 5.25, 5.35 Oct 16
3 Sep 25 [SPA] Ex. 3.6, 3.7 (Page 16 in typeAnalysis.pdf), 3.10, 3.12 Oct 7
2 Sep 18 安装 Java JDK 以及 Scala 等工具, 初步了解 TIP
1 Sep 11
  1. 用Word 和 notepad 打开并编辑相同文件, 看对该文件的修改是否有冲突, 请说明在你电脑上表现出的情况并尝试解释说明

  2. 编写若干个Pthreads程序, 测试、观察并总结

    1) 在主线程中循环创建子线程,看在你的系统里最多能创建多少个,并尝试分析

    2) 在主线程中创建2个子线程,编写任务使得子线程发生栈溢出,并对发生的现象进行分析说明

    3) 针对1和2,可以利用《编译原理(第3版)》 11.1节介绍的编译选项(如 gcc -S)和 objdump 工具查看上述 1) 和2) 的汇编码,了解它们与源程序的对应关系

    4) 编写如下几个多线程程序,让2个线程共享全局计数器,每个线程循环执行任务,每做完一个任务对计数器进行增1,并打印形如 Thread X finished No.Y job 的信息,X代表线程编号,Y代表当前的全局计数值

    4-1)访问全局计数器时不使用任何同步

    4-2)访问全局计数器时使用互斥锁

Sep 18

Material