17

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, ...


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 ...


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.


8

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 ...


7

Trying to learn many things at once: A language, an operating system, creating command line tools, compilation, etc. goes against cognitive load theory. That is why so many students fail. Keep it simple teach one thing at a time. You will do it in less time to can then teach the other things, with time to spare. As a tutor I have taught a student, to create ...


7

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 ...


6

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.


6

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

"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

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

I don't know this book in particular, but I do know Computer Science text books in general, and offer this advice: Consider the title: Operating System Concepts. It is about basic and fundamental concepts that underlie operating systems. The basic concepts, the core material of the text, are not going to change much from first edition to the tenth. You are ...


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

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 ...


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. ...


4

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 identifier ...


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

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 ...


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 ...


1

As is the case with most simplified explanation, I have glossed over some more advanced specific details that don't factor into the basics on file systems. File content At its most basic level, a file is really just a sequence of ones and zeroes. It's data. There's nothing more to it than that. This data can then be interpreted. We (or an application) take ...


1

I'd actually answer this question from an Intro student from more of the HCI perspective, because they likely have more experience using a computer than understanding how the computer works. @MichelBillaud had a similar notion in suggesting it as an abstraction (although most intro students won't fully appreciate what abstraction means the point of asking ...


1

A slightly different but insightful take on this :- On UNIX systems everything is a file. A file of data is a datafile but a directory (folder) is also a file. A device is a file (found in the /dev directory). Programs are executable files and even running program and system states have associated files (found in /run). Network connections are files that ...


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