Table of Contents
Frequently Asked Questions
General
FAQ about Assignment 1
Question 1. We were wondering if you could explain to us what you want and need from us regarding the following:
-environment for software developers and software development -industrial/commercial applications -market share
Answer to Question 1: (a) Re: -environment for software developers and software development:
For an operating system to survive and thrive, it is important to provide a good environment for software developers to be able to develop all kinds of software for that operating system. What kind of environment/tools/facilities are provided for sofware developers for the operating system you are studying? As an example, "both Microsoft and Apple provide driver development kits (DDK) for developing device drivers." http://en.wikipedia.org/wiki/Software_development_kit As another example, see "Developing on Symbian OS" http://en.wikipedia.org/wiki/Symbian_OS#Devices_that_used_Symbian_OS
(b) Re: -industrial/commercial applications:
For example, ""Symbian is the leading OS in the "smart mobile device" market..." Regarding the Symbian OS Nokia S60 (2002) interface: " Nokia S60 is used in various phones, the first being the Nokia 7650, then the Nokia 3650, followed by the Nokia 3620/3660, Nokia 6600, Nokia 7610, Nokia 6670 and Nokia 3230. The Nokia N-Gage and Nokia N-Gage QD gaming/smartphone combos are also S60 platform devices. It was also used on other manufacturers' phones such as the Siemens SX1, Sendo X, Panasonic X700, Panasonic X800, Samsung SGH-D730, SGH-D720 and the Samsung SGH-Z600..." http://en.wikipedia.org/wiki/Symbian_OS#Devices_that_used_Symbian_OS
© Re: -market share:
For example, regarding the Symbian OS: "Symbian is the leading OS in the "smart mobile device" market. Statistics published in November 2008 showed that Symbian OS had a 46.6% share of the smart mobile devices shipped in third quarter of 2008, with Apple having 17.3% (through iPhone OS), RIM having 15.3% and Microsoft having 13.5% (through Windows CE and WindowMobile).[3] Other competitors include Palm OS, Qualcomm's BREW, Google Android, SavaJe, Linux and MontaVista Software..." http://en.wikipedia.org/wiki/Symbian_OS#Devices_that_used_Symbian_OS
FAQ about Assignment 2 and 3
Question 1: We are planning to add a certain additional functionality X to our program for the Assignment. Is adding the additional functionality X allowed?
Answer to Question 1:
In Section G, Note, of the Assignment 2 description document, it is stated that,
“Please note that the requirements specified in section A. Description of the Problem 1-7 above, are the minimum requirements that must be satisfied by your program. Obviously, there are many other possible details of the AFDTD system that have been left unspecified. It is your responsibility to make appropriate design and implementation choices concerning the unspecified details of the AFDTD system, and justify those decisions in your report.”
Any decision to add any particular additional functionality X to your program should be guided by the principles in Section G, Note, of the Assignment 2 description document above.
The marker will judge whether you have made appropriate design and implementation choices or not in adding the particular additional functionality X; and whether your justification of what you have chosen to do and the particular ways you have chosen to do it are valid or not.
Question 2: How can I learn about makefiles?
Answer to Question 2: Just do a Google search using the key words “makefile” or “makefile tutorial”, and many tutorials or reference manuals can be found, for example:
- a brief introduction to some of the most basic features of makefiles:
http://www.cs.tau.ac.il/~dcor/Software1/Makefile.ppt
- a tutorial on some of the most basic features of makefiles:
http://www.opussoftware.com/tutorial/TutMakefile.htm
- a complete reference manual on the gnu make utility:
http://www.gnu.org/software/make/manual/
Question 3: For Assignment 3, can I include the errors.h file that was used in Assignment 2?
Answer to Question 3: Yes.
Question 4: I have written some code, but it doesn't work. Can you check to see what is wrong with my code?
Answer to Question 4: Unfortunately instructors are not responsible for checking student code. The fastest and easiest way for you to learn how to do the assignment, and to learn about thread programming, is to follow the advice in the assignment handout, copied below: In Section F, Hints, of the Assignment 2 description document, it is stated that,
“1. You may start by trying to read and understand the program “alarm_mutex.c” in pages 52-58 of the book “Programming with POSIX Threads” by David R. Butenhof.
2. The program “alarm_mutex.c” and the file “errors.h” and “README” can be downloaded from the directory /cs/course/3221/assign2. Try to compile and execute this program by following the instructions in the “README” file.
3. The book “Programming with POSIX Threads” by David R. Butenhof has been put on reserve in Steacie Library.”
Once you have done that, it is most likely that you will also immediately know why your code doesn't work.
Question 5: Can I use the cursor library in my assignment?
Answer to Question 5: This question and the answer to it falls into the category of Question 1 and the answer to Question 1 above. You are not required to use the cursor library for doing the assignment. If you do choose to use the cursor library, you are completely on your own, and you should carefully document and justify all your design and implementation decisions in your report.
Question 6: Can you confirm the input format. You state “The Airline, Flight, Departure_To, Scheduled_Time, Status, Revised_Time, and Terminal data are separated by one or more Tab characters.” Is every field mandatory? Would two tabs appear only if a field is omitted, or can there be two tabs between Airline and Flight?
Answer to Question 6: The input format should be EXACTLY as specified in the assignment, which is already clearly specified in Section A, Description of the Problem, Item 1, of the Assignment 2 description document:
“… The Airline, Flight, Departure_To, Scheduled_Time, Status, Revised_Time, and Terminal data are separated by one or more Tab characters. For examples of the formats of the above data, see the “Greater Toronto Airports Authority – Live Flight Information” webpage: http://www.gtaa.com/en/travellers/search_results/?info=departures&all=true&submitting=true”
It is up to you to figure out how to check the format of any user input, and how to detect possible errors in any user input.