13

The simple breakdown is: Anything that performs input/output involes a series of system calls. Anything that's purely computational doesn't involve system calls. Both of these statements have exceptions (I/O through memory-mapped files or peripherals is I/O without syscalls, calling a hardware accelerator or allocating memory is syscalls without externally ...


12

The problems Hierarchies are not obvious First let me point out that a hierarchy is not the most obvious or best structure for storing files. It is still based on library categorization systems, where a book can be in only one place. I file could be indexed in more than one place (and sometimes is). A tag system as used on this-site, gmail and elsewhere, ...


9

One reason infinite loops are used could be so the problem can't be solved by letting one thread complete the code before the other thread starts it. With infinite loops, no thread ever completes the code. Of course, using a bounded buffer has the same effect.


7

Its actually harder than just finding a modern user-interface which exposes a directory structure. The whole concept of a directory structure is just a convenience - there is nothing 'physical' which it relates to. Most of us started our interactions with computers at a point where directories were the first point of interaction, so it is hard to relate to ...


5

"processes that run and enter critical sections ... where the code is not in an infinite loop" Processes are generally components of a reactive system (like an OS) that are designed to be non-terminating (hopefully, otherwise we call it a "crash"!). So even if the code of the process doesn't contain an infinite loop, the process will be invoked an ...


5

Implementing a whole OS may not be the best approach if you want your students to learn operating system concepts. This is specially true if your students are not proficient in C and Assembly, since major parts like booting, context switching and virtual memory need to be coded in Assembly. This might be daunting for students that have experience only with ...


5

Make sure you are having your students "spelunk" in the file system and have them draw some of the tree structure. Often, this visualization helps them see the way the FS works, more clearly. We spend a couple of days gaining an understanding of absolute and relative path. I teach this course using a Gnu/Linux server.


5

I would approach this pragmatically, beginning with the metaphor that kicked it off. I would tell the students something like this: Imagine that it's 1925, and you're working at a giant company like General Electric as a secretary. There are files, meaning pieces of paper, for all kinds of things. Personnel files about employees, files of record for ...


4

The question is actually quite deep. For instance, I'm sure you've heard the phrase "everything is a file," that is associated with a design of Unix operating system. So, the answer could be puzzling "a file is almost everything in Unix," for example devices can "look like" files to some processes. They use a file as a common interface between many processes....


4

"File" is an abstraction. Even worse, we use it for different abstractions. Well, suppose I copy a file to this site, and you download it. Would you say it is the same file? What do you mean by same? Actually, we'll have, more or less, parts of our hard disks (or is it a floppy?) containing bytes which we understand (through the magic of operating systems)...


4

I don't see any particular problems with your syllabus. However, I do see two challenges that you will need to overcome. Depending on other factors in your context these may be easy or hard. But there is a lot you don't say that would permit a better set of suggestions; how many students and how motivated they are, for example. I'll address that at the end. ...


3

First I would recommend to start by using an operating system, such as Gnu (Debian etc), but any Unix will do. Most people have not used an OS: Most people just run applications, but don't interact with the OS. Microsoft's Windows, does not provide anything much to interact with (a file manager, and some config tools). It is mostly just a platform to write ...


3

There are two standard texts that have stood the test of time. Both are fairly deep: XINU shows how to build an OS that externally resembles UNIX, but isn't (XINU = Xinu Is Not Unix), using a microkernel architecture (unlike Linux). Operating Systems Concepts is more of an overview of OS concepts and how they interrelate. The first book can be used if ...


2

I think in this case a short answer is better than a long one, which is harder, but I might give it a shot: A file is a list of bytes and an identifier [location]. Make sure to explain that there are no physical files and the term is just an abstraction. With my definition you can explain the following: If you create a new file with a different ...


2

You may have to rethink the curriculum design at a higher level ( involving other staff ). Do you kick people off the course, loosing revenue. Do you teach extra lessons to get them up to entry level, extra cost. I think it is a good idea to teach Unix. it is a very consistent operating system, making it easier to learn. However there is an initial ...


2

You might consider using MIT's xv6 which they describe as "xv6 is a reimplementation of Dennis Ritchie's and Ken Thompson's Unix Version 6 (v6). xv6 loosely follows the structure and style of v6, but is implemented for a modern x86-based multiprocessor using ANSI C." It can be run in a VM. Phillip Opperman has a very accessible set of blog posts, Writing an ...


2

Nothing wrong with citing all the "dictionary" definitions found on the Internet. I'd add that a file tends to be the lowest level of abstraction of a container or boundary around data that the Operating System manages. That is the file's name is accessed through the OS and if you want to know the bits and bytes of data "in" the file you need an ...


1

Was in a conference the other day and someone was showing intercept security... A .exe file started with MZ. Why? Those are the initials of the man who created the first DOS executable file format. Many kinds of files have 'signatures' in the first few bytes. I used to use a tool called 'strings' that would show any displayable sequences of characters in ...


Only top voted, non community-wiki answers of a minimum length are eligible