Multithreading Operating Systems, Master1 in Computer Science, University of Rennes 1.
After the introductory video by Prof. Tami Sorgente, and two initial videos about memory and data representation by Prof. Gaetano Borriello, we'll continue this week with three additional videos extracted from the lectures given by Prof. Borriello at University of Washington. Before watching these new videos, please make sure that the content of the two previous videos, video1 and video2, is clear to you.
The first video this week is about data pointers and addresses, and on the different ways we can interpret a piece of data stored in the computer memory.
As a reminder, please keep in mind that these videos (also this week, the videos we are watching were not taken from a classroom) do not contain repetitions, and the time is not stretched with possible answers to questions from the audience. Therefore, consider that, even if these videos may be in time length much shorter than a lecture, it is possible that the number of concepts that are introduced is actually the same. For the same reason, since there are generally no breaks in these videos, consider to pause them and rewind if something is not completely clear to you. Another good approach: watch them more than once, possibly over different days.
In the original lecture given by Prof. Borriello, there are two additional videos where the addresses and pointers are explained in practice for the C programming language. As you know, instead, our course uses Java as a reference language: you can watch this video for information, as well as the following one about arrays, but consider that only a little of what it is said is also true in Java.
In the next video, we'll explore how to make boolean algebra with the data words introduced in the previous videos. Notice that a boolean value can be represented with only one bit, and therefore several boolean values can be stored in a byte, or even in a longer data word.
Consider that the bitwise operators, that are introduced in this video for the C programming language, are also available in Java. When the logic operations are performed over boolean values with the operations && and ||, Java optimizes them in a way that the second operand is not evaluated when the expression can be evaluated only by taking into consideration the first one... Please try to figure this out by yourself.
The last video we are watching this week introduces the representation of integer numbers, and in particular the two's complement representation of negative integers.
Next week we will end this introductory part of the course with the floating-point representation. Rennes 1 students will soon receive information about a very first online evaluation: don't worry, the grade that will be assigned to this test will have only a little impact on your final grade; the main reason for performing this test is to verify whether the initial introduced concepts have been assimilated.
Next week we will also begin with the first assignment in Java. If not done yet, I remind you about the simple online search that you can perform to get ready for these assignments: How to write a code in multi-threading in Java? What data addresses (pointers) every thread can make reference to?