ANONYMOUS wrote
As you'll see in Monday's lecture, or if you read ahead, the getopt() function detects such problems, but it'll be up to your code to report any errors.
ANONYMOUS wrote
The function strdup() has never been defined in a C standard, until its appearance in the new C23 standard (though why release it on 1st April ?) https www.open-std.org jtc1 sc22 wg14 www docs n3096.pdf
But strdup() has ...
The file dirA a b c thing1 will be copied to dirB a b c thing1 if
- dirB a b c thing1 does not exist, or
- dirA a b c thing1 is newer than dirB a b c thing1
If a file is renamed, we have no record of what its original name was, and the contents of...
Details of the 2nd project are available from https teaching.csse.uwa.edu.au units CITS2002 projects project2.php
Please post requests for clarification about any aspect of the project to help2002 so that all students may remain equally informed. S...
ANONYMOUS wrote
Firstly (as we're discussing C), we speak of functions, not methods.
Header files should contain globally-required preprocessor tokens and macros, and declarations of functions and variables. These simply inform the files that in...
You may find a copy of the 1st project's sample solution from https teaching.csse.uwa.edu.au units CITS2002 projects myscheduler-solution.c
Please review the sample; it's written with (only) arrays and structures, and (as promised) does not employ ...
ANONYMOUS wrote
Hello,
Our 1st project was originally due 5pm Fri 15th Sept, and submissions closed 7 days later, at 5pm 22nd Sept, to account for all students with approved extensions.
Did you attempt to submit your project after that Friday deadline...
"Where do UNIX manpages come from? Who introduced the section-based layout of NAME, SYNOPSIS, and so on? And for manpage authors where were those economical two- and three-letter instructions developed?"
https manpages.bsd.lv history.html
"On September 27, 1983, a computer scientist named Richard Stallman announced the plan to develop a free software Unix-like operating system called GNU, for "GNU's not Unix." GNU is the only operating system developed specifically for the sake of use...
ANONYMOUS wrote
As the announcement says - "The final lecture, on Tues 17th October, will discuss how the exams are marked, and look at questions from last year's final examination." so, yes, we'll be looking at how the marking is done.
There is no ...
Details about our final exam https teaching.csse.uwa.edu.au units CITS2002 examinations.php
Please email me with any questions you have about its format, etc.
The final lecture, on Tues 17th October, will discuss how the exams are marked, and look a...
Up until the end of Sunday 17th, we have 229 project submissions, 122 of them from teams of 2. 25 submissions required some minor changes to get them to compile correctly (suggesting that they were not previously compiled with the required options t...
There is no rounding performed in the sample solution.
All times are in integers and the final calculation of the utilization is performed in integers 100 total time on CPU total time;
ANONYMOUS wrote
Asked and answered (somewhere) previously.
The process's sleep time occurs simultaneously with the transition time (RUNNING- SLEEP), so by the tiem the transition has occured, the request to sleep for 10usecs has been satisfied.
When submitting your 1st project, please ensure that
- you've had a final read through the Clarifications
- you've taken heed of the 'big hints' in the manual-marking section of the Rubric
- your single C11 source-code file is named mysched...
ANONYMOUS wrote
As we are not striving for any efficiency, highly readable code is greatly preferred over long sequences of code that, often, are longer than the screen you're reading from. For example, The Clarifications define the order of schedul...
ANONYMOUS wrote
Depends on your implementation - you may increment advance the time by any amount, though just be careful not to 'miss' any events if you advance it along way into the future. If you ever find a need for time to go backwards, it stro...
ANONYMOUS wrote
I'm pretty sure that this has been discussed previously, but I can't find it.
The 'belief' is that '246 idle' should not be reported, but it happens because the final reporting debugging code at the end of each microsecond just prints...
ANONYMOUS wrote
After the process has spent 5usecs on the CPU performing some computation, its time-quantum expires and it's removed from the CPU.
It does not "look into the future" to see what system-call is coming next, and then perform it if it hap...
ANONYMOUS wrote
This project does not require a multi-threaded solution, so I'm afraid I can't see the purpose of any worker threads (unless you're meaning something other than the traditional meaning of worker threads??)
ANONYMOUS wrote
I don't understand what you mean "...in a for loop". You'll only ever be creating one new process at any one time, so I'm unsure what role a loop has. ??
Only the single process running on the CPU can create a new process, by calling ...
ANONYMOUS wrote
I'm not sure what you mean by 'my program will be overwhelmed'.
All output will be ignored except the last line, so it doesn't matter how much there is.
When the CPU is idle, at time T, is awakens all sleeping processes that should wa...
ANONYMOUS wrote
Yes, that's the correct interpretation, and is intended to use as the maximum size of arrays and queues.
In hindsight it should have been named MAX CURRENTLY LIVING PROCESSES, or something( ), as, of course, only one process can only e...
ANONYMOUS wrote
No. You're either overthinking things, or have some misunderstandings.
If a process is in the middle of writing something (actually, the device that the process requested to write something is writing), the process is not on the CP...
ANONYMOUS wrote
Unsure what you mean. In the attached image the process requests to sleep for 5 usecs, the whole transition takes 10usecs, and so the process's sleeping request occurs during the transition.
Correct.
ANONYMOUS wrote
Whenever a process moved from READY- RUNNING it gets a new timequantum.
In your 1st example, this is reported when the process's transition is complete, and the process is now able to (continue) executing.
In your 2nd example, the proce...
ANONYMOUS wrote
(from the perspective of the process) if a process wishes to sleep for 15usec, then it wishes to stop sleeping 15usec into the future. It doesn't care what happens when it is sleeping. So the actual time sleeping, can include (overl...
ANONYMOUS wrote
Firstly, a data-bus is a physical thing , it's not a verb, or an event, or an action, and in our simple system there's only one of them which connects the CPU, devices, and RAM together. Only one device can perform a data-transfer a...
"... claims the UNIX OS was written in only 13K lines of code. Which seems a remarkably low number. Is it true, and if so how did they manage it? Seems completely antithetical to the monolithic monstrosities we know operating systems to be today."
...
ANONYMOUS wrote
Sorry, I can't reply as fast as you can cut-and-paste the same question.
The ceil() function is in the standard C maths library, which is why you'll need the -lm linker option on Linux. Yes, you may use it.
On macOS, Apple h...
ANONYMOUS wrote
If the true time taken is 66.66666, then it will not be finished by 66.0 but will be finished by 67.0
We can't 'do the next thing' until the I O has finished.
ANONYMOUS wrote
Yes, that's correct.
Those time values are not consumed performed by the individual processes, but by the OS or a device.
So they do not add to the processes' time on the CPU, and thus have nothing to do with the timequantum .
Hi Hugo,
It's safe to assume that all sysconfig files will define timequantum
(you may be overthinking things but, in this and similar cases, if the better 'solution' is only a couple of lines, I'd provide the better solution, even if not require...
ANONYMOUS wrote
There's no extra usec to add, as has been discussed and resolved in a few threads here, already. Please read through those.
Following the scheduling order listed in the Clarifications, everything happens consistently in that order.
Hello Leon,
I've now read and replied to your email.
Sorry for the slow reply, but it's been the teaching break and I rarely work Saturdays, and people just need to get away from computers occasionally.
ANONYMOUS wrote
Allowed? certainly, and 'essential'.
Asked and answered previously here https secure.csse.uwa.edu.au run help2002?p np opt U213
Also, check the marking rubric https teaching.csse.uwa.edu.au units CITS2002 projects project1-rubric....
ANONYMOUS wrote
The time-quantum doesn't affect any system-call.
After a process makes any system-call the process is removed from the CPU.
If that process exits, obviously it won't get back to the CPU.
Otherwise, every process is given a new 'full' t...
ANONYMOUS wrote
In Labs 2.03 and 2.05 you should first reboot the machine if it is running Windows.
When given the menu to choose which OS to boot, choose Linux Ubuntu.
There may be some setup difference between different computers in the same lab, so ...
It is not meaningful to say "This is practically 0 in the program".
If something starts at, say, t 10 and takes 0.0006666, then you can't say it finishes at t 10.
Moreover, if we're only using integers to represent time, then we have to say that it ha...
Any debug printing statements will be ignored when your project is marked, so only you will know which debug printing is still valuable for your understanding of your code.
Hope this helps,
Hello Luyang,
If you run the sample solution in 'verbose mode', it will display (and hopefully explain) the times when each activity commences and finishes.
Have you tried that?
"...all 14 Toyota assembly plants in Japan faced an unexpected stoppage on August 29. It was all thanks to a breakdown of a key computer system responsible for ordering vehicle parts for Toyota factories. The cause of the problem? A full hard drive.
....
ANONYMOUS wrote
Yes, this.
Your project should be able to spawn an infinite number of processes( ), though at most MAX RUNNING PROCESSES will ever be running at any one time.
ANONYMOUS wrote
Now linked 'everywhere' - https teaching.csse.uwa.edu.au units CITS2002 projects project1-rubric.php
Please report anything in it that appears unexpected.
(a marking rubric identifies what will be assessed; a marking sheet indicates t...
Now linked 'everywhere' - https teaching.csse.uwa.edu.au units CITS2002 projects project1-rubric.php
Please report anything in it that appears unexpected.
ANONYMOUS wrote
They are constants defining the characteristics limits of the computer system we're emulating. You will likely choose to use the values to define the maximum size of the data-structures that you define for your project.
The project de...
And just to make it clear for everyone - our project's requirement that certain lines begin with a TAB is not just there to make your life difficult. It is a very common feature of system configuration files that certain lines begin with a TAB, or ...
ANONYMOUS wrote
A process calling wait will be blocked until all of its child processes (that it has spawn ed) have terminated.
The project sheet says
"waits for all processes that it has spawned to terminate (at which time the process is...
ANONYMOUS wrote
A few things
- there is no state named 'DATABUS' - the data-bus is a 'wire', so a process cannot be 'in' it.
- your process would move from RUNNING- BLOCKED.
- a process waiting to acquire the data-bus does not have wait for the READY q...
With 12 commands, your command-file is not a valid one.
Your program (unfortunately) does not crash because there may be 'nothing important' in positions 10 and 11 , and your code just keeps adding to the array with only 10 elements.
It is still not working because you still have not inserted a TAB character. You have inserted 8 spaces instead of the single TAB character.
Run the command od -c command-file from the command-line and you'll see a sequence of spaces, but no TAB...
There is no contradiction ( ).
A process calling spawn is not blocked; it is placed back on the READY queue.
A process calling wait is blocked if it has (running) child processes, otherwise it is placed back on a READY queue.
A process does ...
In the files you've posted I can see the 4 spaces. If you had a TAB, it'd likely be indent by 8 spaces.
Also, your 2 input files are not C (programming language) files, so I suggest not giving them a ".c" extension.
No relation but if someone was interested in an Apple desktop machine for home, this Gumtree sale seems like a bargain. Of course, make sure you sight the receipt to ensure that it's not stolen
https www.gumtree.com.au s-ad clarkson desktops m...
Yes, thanks.
And just to clarify this (c.f. another student's email), only the very first character needs to be a TAB.
You may provide either spaces or TABs between the words on each line.
Yes, thank you lab fac.
We don't get enough chance to discuss this in our lectures, and rushed over it because there's so many different types of devices and how they interact with the data-bus (and, in fact, modern systems will have several data-buse...
ANONYMOUS wrote
Firstly, thanks for explaining your confusion misunderstanding in such great detail, it helps to provide an answer knowing what you don't understand or what you've overlooked.
What you and a number of other students have described as '...
ANONYMOUS wrote
A process that is sleeping is blocked (for a period of time), so the transition time for Ready- Blocked applies.
If you review the 5-state model, https teaching.csse.uwa.edu.au units CITS2002 lectures lecture07 09.html there is only ...
ANONYMOUS wrote
As given, just a simple FIFO queue.
A process's time on the CPU has no 'meaning' for the READY queue, unless you're suggesting the processes that haven't used the CPU much in the past should be given greater future access to the CPU (...
(sorry, I can't find the original comment that identified this)
Thanks for identifying this confusion. I've modified the sample solution, and added this to the Clarifications "If a process calls the 'wait' system-call when it has no children, it sh...
I believe the problem reporting negative I O times has been corrected. Please report any problems.
The arithmetic was being performed using a standard int (4 bytes), which overflowed with larger (faster) I O speeds.
If you're having similar probl...
I believe the problem reporting negative I O times has been corrected. Please report any problems.
The arithmetic was being performed using a standard int (4 bytes), which overflowed with larger (faster) I O speeds.
If you're having similar probl...
The Evolution of Computing From 8-bit to 64-bit
"In the early days of computing, the alignment of bit lengths to powers of two wasn't always a given. Nonetheless, many early computers embraced these dimensions. The highest value a CPU could address i...
ANONYMOUS wrote
Yes, that 1st IDLE should not be reported there.
It's not a bug in the logic of what's happening, just in where it's reported by the debug printing.
I'll correct it.
ANONYMOUS wrote
Please re-read the (online) project sheet - you may be reading quoting from a printed copy.
When a number of changes were made yesterday, that requirement was also removed (to make things much simpler).
ANONYMOUS wrote
There's only been two versions of the sample, one a few days after Workshop 5, and the second installed yesterday and described in the Clarifications.
The second was the result of students reporting problems with the first, and but bo...
ANONYMOUS wrote
The above.
You first unblock any sleeping processes that finish at the current time.
If there are multiple such sleeping processes, they are unlocked in the order in which they started sleeping.
The same holds for each of the following b...
Solutions to our 2 items of formative assessment are available from https teaching.csse.uwa.edu.au units CITS2002 formative.php
(of note, not a single student asked about any of the questions; unsure what to conclude from that)
I believe that that is covered in the Clarifications which list the order in which different event-types result in things being unblocked.
In your example, any sleeping processes would be unblocked before the blocked-on-I O process.
ANONYMOUS wrote
Yes, exactly what it means.
I cannot see where the perceived complexity comes from
- if we're talking about the queue of SLEEPING processes, because it's a queue , any sleeping processes that wake-up at the same time will all be at th...
Sorry, but I cannot understand your description or reasoning here.
I'm wondering if there's confusion because multiple 'things' are sometimes reported at happening at the same (integral) time?
For example, if a process has spent a 5 full usecs computin...
ANONYMOUS wrote
Between the values of, say, 10usecs and 50usecs we assume that the process on the CPU is performing some calculation computation requiring the CPU. Have a look at that in the sample solution (verbose) and let me know if that's not cl...
ANONYMOUS wrote
Thanks Yes, very likely a bug through only testing with too-small values. A negative time quickly suggests a problem with overflow in the calculation of time required. Will look into it.
Please read the updated Clarifications page https teaching.csse.uwa.edu.au units CITS2002 projects project1-clarifications.php (4th September) which defines the process scheduling order.
The revised sample solution schedules the processes by followi...
ANONYMOUS wrote
This is very likely because the line 50usecs exit does not begin with a TAB character.
The revised sample solution will check for and announce this (your) error, although your solution may assume that the input files are corr...
ANONYMOUS wrote
We'll be sticking with the project description - that the request for the fastest reading device received the data-bus next.
For any combination of read and write speeds, and the order of requests, it's (probably) possible to construct...
The sample solution clearly does not meet many students' expectation of what they expect to see.
Yes, it will be changed and explained clarified, particularly with regard to how and when state transitions are implemented.
The goal is to define, and req...
"Replacing a sort algorithm in the FreeBSD kernel has improved its boot speed by a factor of 100 or more and although it's aimed at a micro-VM, the gains should benefit everyone.
MicroVMs are a hot area of technology R D in the last half decade or ...
Great reply - thanks. It's almost as if induction is involved
Yes, a process may spawn another process whose definition has already appeared, or is yet to appear, in the commands file.
"Computers are no longer getting faster. Future improvements in speed will come less from better hardware and more from faster, more efficient programming."
"Programs written with Python are notoriously slow - up to 60,000 times slower than code writt...
Hi Jacob,
I understand (most of) your question, but there's no general one-size-fits-all answer. The best choice is going to be specific for a particular program - number of variables and functions, required degree of sharing between functions and, if...
ANONYMOUS wrote
Hi, yes all values in the 2 files are integers.
The space-or-tab separated words in the files, such as "200usecs", can easily be captured with an expression such as int x atoi(word); because the atoi() function will retur...
ANONYMOUS wrote
The decision to determine if the 'waiting' process has any children to wait for is made by the OS.
The OS requires the use of the CPU to execute code to make that decision.
The process invoking the 'wait' needs to be placed somewhere so...
Hello Amanda,
There's no single correct answer, and it may be a property characteristic of a particular OS, or even a configurable attribute of an OS that is read and then used after the whole OS boots.
In the 1980s and 90s there was a lot of research ...
ANONYMOUS wrote
Yes; the workshop was intended as a Q A session, to provide explanation, and to demonstrate that there would be a web-based sample solution available. It wasn't intended for that demonstration to be used as a definitive example. Ple...
ANONYMOUS wrote
I'm afraid that I have no helpful suggestions, but the very first thing you need to setup when you have it working again is to establish a regular backup routine for your files - using either a simple USB key, to a cloud-drive such a...
ANONYMOUS wrote
There is a limit to how many processes are ever supported. An attempt to exceed this limit would be an error (such as in a real OS, a call to fork() for fail). The project sheet states that there will be no errors in the input files,...
"Vannevar Bush, a professor at MIT Massachusetts Institute of Technology wanted to solve differential equations. Now, remember, in those days there weren t computers like we have today. Everything had to be done by hand or with mechanical devices...
"Every era of computing has its standout stars. The brains behind our beloved machines, the Central Processing Units (CPUs), have shaped technological advancement. Here's our list of the ten most influential CPUs that have left their mark on history ...
ANONYMOUS wrote
There's a single CPU, and it can be used by either users' executing processes, or the OS (performing state transitions). Before the CPU can be used by the OS, or at the very beginning of the OS's actions, the executing user process's ...
I'm presuming that you're storing your value sin integers, 32-bit or 64-bit. From wherever that 875523205136 value came from, it will occupy the same amount of storage, in the same variable, as a value of zero. ??
Setting an integer value to zero, wi...
ANONYMOUS wrote
We tend to use the word 'blocked' to mean that a process is waiting for a resource (such as I O), or a time interval (sleeping), but not when simply waiting for its turn on the CPU.
When a running process's time quantum expires, the pr...
ANONYMOUS wrote
Your thinking and the stated numbers are correct, but the statement '...which is very slow' is not true.
How long will it take to perform 5 million (integer) comparisons on a laptop capable of 2 billion instructions per second?
Your la...
ANONYMOUS wrote
Oops, sorry about that - I was thinking about the state transition time, not the timequantum.
You are correct - the TQ will have no affect on a process sleeping.
This is the sort of question where the best answer is "if you know what would make your program better, why not do it?".
We know that the format of the input files is correct, and their data consistent, so most of those 'difficult' errors won't occur....
ANONYMOUS wrote
The actions necessary to perform a state transition are executed by the OS, using the single CPU. Thus only one state transition can occur at one time.
Very likely that it has a setting to insert 'soft tabs', instead of 'hard tabs', by inserting the appropriate number of spaces to reach the next 'tabstop', often a multiple of 8.
And, let's never miss a chance to show this great clip from Silicon Vall...
ANONYMOUS wrote
I suggest that you keep thinking about the problem; the numbers in the command-file, alone, do not reflect the interactions between the processes and the I O devices, both of which affect the total execution time.
ANONYMOUS wrote
It's not clear if you have a question.
Yes, the two input files are text-files, which you can process with fopen() , fgets() , and flclose() .
ANONYMOUS wrote
There's 'always' multiple ways to implementing something. Different (correct) implementation should produce the same results - as long as a process requests something requiring a state transition at a certain time, and ends up at its ...
Yes, and it's realistic, too. From man 3 sleep - "System activity may lengthen the sleep by an indeterminate amount."
You can perform arithmetic in 'doubles' without requiring double variables or managing time with doubles. In the case of findi...
"Just over three decades ago, Linus Torvalds sowed the seeds for Linux by sending an email detailing his plans to develop a free OS"
https www.xda-developers.com on-this-day-in-1991-linus-torvalds-announced-linux
Times are measured in integers.
It makes no sense to think of them as floating-point values, or to consider rounding.
If the 'precise time' is actually 14.2usecs, then it certainly hasn't finished by 14usecs.
A process asking to sleep for some time, is asking for that time on 'the clock on the wall'. If it makes the request to sleep for 10 seconds at time 3 seconds, it expects to be awoken at 13 seconds (but can't expect to run at exactly 13 seconds). T...
Your understanding is pretty complete, other than the "prioritises the processes on which needs the least time to be completed", so I'm unsure why you describe things as "can't make heads or tails of this project"??
I don't believe it's the sort of ...
ANONYMOUS wrote
There's no single 'true' answer, and it may depend on your implementation.
You may not wish to put it in the Ready queue as it's not yet Ready to run,
and you may not wish to keep it in the (a) Blocked queue if that would interfere with...
Hello. I'm wondering if you have a question or are just walking through your understanding, here?
Please use the web-based sample solution, rather than the Workshop 5 recording, for comparison purposes.
Please remember to look at, and attempt, the unit's formative assessment https teaching.csse.uwa.edu.au units CITS2002 formative.php
To get the most benefit from these items of formative assessment, you should attempt them under "test conditions" -...
ANONYMOUS wrote
Yes.
Suggest that you experiment with the sample solution https secure.csse.uwa.edu.au run myscheduler-sample , remembering that even a sleeping process is blocked, too.
ANONYMOUS wrote
You are welcome to change, add to, or extend the starting code in any way you wish.
The sample solution has about 22 functions in addition to the 3 empty ones in the starting code.
Some of the functions are as few as 5 lines long, but t...
A web-based sample solution for Project-1 is available from
https secure.csse.uwa.edu.au run myscheduler-sample
There is NO requirement for your project to reproduce the sample's debug output.
The read and write system-calls are not yet implemented...
An annotated history of some character codes
or
ASCII American Standard Code for Information Infiltration
"This document is about character codes, specifically a history of ASCII(1), the American Standard Code for Information Interchange, and immediate...
The History of the First Computer Shell
"BASH? PowerShell? It all traces back to 1963. And the work of an amazing Frenchman, CTTS, and Multics."
https lunduke.locals.com post 2853097 the-history-of-the-first-computer-shell
ANONYMOUS wrote
The time that a process is on the CPU is accumulated, a statistic of that process. The time taken to make a system-call, or to make a state transition is not performed by the process - it is performed by the OS on behalf of the proces...
ANONYMOUS wrote
You're welcome to change function names, parameters, and return types as you wish (or not even use them).
DO NOT change the numeric preprocessor constants near the top of the file, else your code won't match the sample solution.
It's o...
ANONYMOUS wrote
You gain marks for good practices. There is no 'negative marking', so you do not lose marks for anything.
Marking starts at 0 and goes upwards, not from 100 going downwards.
The use of global variables was discussed in Friday's Works...
ANONYMOUS wrote
That approach may work, but the 'picking apart the times' part is difficult because you must account for the interactions and competition between multiple processes.
As discussed in Friday's Workshop 5, another (I believe much easier...
ANONYMOUS wrote
Yes. Please read https secure.csse.uwa.edu.au run help2002?p np opt U179
I cannot imagine why you would need to call usleep() for this project. It suggests a misunderstanding, which should be addressed by watching today's Work...
command1 and command2 should each be able to spawn each other.
There is no 'ordering' in the commands file (other than the 1st command being the only one automatically executed).
"Ancient civilisations hunted for spice; in the 20th century we fought wars for oil. In 2023, the world s most precious commodity is an envelope-sized computer chip. The H100, a rectangular black maze of circuits with a shimmering microchip at its ...
ANONYMOUS wrote
The format of the commands file is always the same, and your project does not have to check for files with an invalid format.
The command names, such as 'shortsleep' or 'elephant', can be anything, and your project does not need to (...
Let's use the correct terminology (for C), which will keep the questions and answers as clear as possible.
Firstly, we're not 'importing' anything.
Secondly, string.h is not a library - it refers to a text file containing the declaration (not impleme...
The data-bus is used when a process requests some I O (either way), and the use lasts from when that process acquires the data-bus until the transfer of data completes.
While the data-bus is in use by one process, another process can be using the CPU....
ANONYMOUS wrote
A good question.
I'll decide whether the parent or child runs next, and add the 'answer' to the Clarifications.
Yes, the parent only waits for the child if the parent calls wait .
Yes, the ratio of CPU-time-consumed-by-all-processe...
ANONYMOUS wrote
(now not sure how this comment fits in the discussion sequence, but) yes, there's many ways to have multiple processes in the READY queue.
Firstly, let's use the correct terminology. A process whose time-quantum expires is not blocked, it moves from RUNNING to READY.
Your process, above, would run for 100usecs, move to the READY queue, eventually move back to the CPU, run for 100usecs a...
ANONYMOUS wrote
No, that's incorrect.
The commands in the commands-file are akin to all the available executable programs on your laptop's disk. When you boot up your laptop they do not all start running, only the ones you request to run (with spa...
ANONYMOUS wrote
Great. The very first sentence of the project sheets says "...to emulate the scheduling of processes" but I'll change that to "...emulate (or simulate)".
ANONYMOUS wrote
That's a very 'big' question.
I strongly recommend that you find a project partner, have some discussions with them about what you both understand, get along to a lab session to discuss your ideas with the helpful people there, and att...
ANONYMOUS wrote
A single tab character - written with ' t' in C - should appear as the first character on the line.
Unsure what you mean by "modify the file", as the sequence - tab - is only written on the project sheet so that it's clearly there; ...
ANONYMOUS wrote
The answer is 'yes', because that's what the project specification says.
In practice, a system would also introduce a mechanism to avoid what's called "process starvation" - the chance that a process waits indefinitely because there's ...
ANONYMOUS wrote
You will need to create and test your project with a variety of attributes values in those 2 files.
I am unsure what you mean by '...in the main file'.
Review the starting code.
Just in the very standard way.
Suppose a process has (only) 150usecs of computation to perform, before it exits.
When it first gets on to the CPU it runs for the time-quantum of 100usecs, then it is kicked-off the CPU.
It eventually returns to the CPU f...
ANONYMOUS wrote
Not sure what you mena by this question.
Commands have names, just a single word on a line by itself, and every line following that begins with a TAB character after the system-calls executed (in order) by that command.
ANONYMOUS wrote
No, but you'll soon have access to a sample solution against which you may test your own project, for varying input files.
And don't forget to test your project with varying sysconfig files, too, not just command files.
ANONYMOUS wrote
Hi. Nearly everyone in the unit is new to how the internals of an OS work, so you're not alone. However, you do appear to have some serious misunderstandings about the project (as do many others), so I strongly recommend that you fi...
ANONYMOUS wrote
No problems, that's the idea
That process will stay on the CPU over 91, 92, ... usecs. After the process has been on the CPU for 100usecs (exhausted its time-quantum), it will be moved to the Ready queue. When it is next on the CPU,...
Details of the 1st project are available from https teaching.csse.uwa.edu.au units CITS2002 projects project1.php
Please post requests for clarification about any aspect of the project to help2002 so that all students may remain equally informed. S...
There is a (rare) case where you may need to consider their difference
- exit() terminates the current process, no matter where (from which function) it's called. If exit() is called from main() the whole process terminates.
- re...
Career advice for young system programmers
https glaubercosta-11125.medium.com career-advice-for-young-system-programmers-c7443f2d3edf
"If you are interested in the plumbing of our software industry systems level programming, much of the career a...
ANONYMOUS wrote
Unsure if you've read the (original) linked paper, but there's a huge amount of detail on the questions selected
https arxiv.org pdf 2308.02312.pdf
All good reasons, and everyone will have their own reasons and preferences (though ...
Someone emailed me this question and the reply will be of general interest
I don't believe that there's that much history discussed in the lectures (happy to hear others' opinions, too), just some mostly in Lectures 1 and 3. But I feel a bit of hist...
You may remember in the 1st lecture that I stated that new technical developments in operating systems attract far less attention, today, than do changes in the user interface, fonts, and desktop images.
The major development attracting all attention ...
Windows feature that resets system clocks based on random data is wreaking havoc
Windows Secure Time Seeding resets clocks months or years off the correct time.
https arstechnica.com security 2023 08 windows-feature-that-resets-system-clocks-based-on...
ChatGPT answers more than half of software engineering questions incorrectly
You may want to stick to Stack Overflow for your software engineering assistance.
https www.zdnet.com article chatgpt-answers-more-than-half-of-software-engineering-question...
Dear Computer Science Students,
QFin UWA has our biggest event of the year coming up THE QFIN PANEL NIGHT and we'd love to see you all there
Tickets https www.eventbrite.com.au e panel-night-tickets-692141553017
Date 31st of August
Time 6pm - 8p...
Someone sent in this question by email
The main() function may return (to the operating system) by calling the exit() function, simply calling return, or 'dropping off' the bottom curly bracket.
In the last 2 cases, no call to exit() ...
ANONYMOUS wrote
When formatting output with printf() and friends, there really is no difference.
However when scanning parsing input with scanf() and friends, using " i" supports reading in integers in different numeric bases, such as base-10 (decimal...
ANONYMOUS wrote
Actually neither of those possibilities
- project-1 may be undertaken by 1 or 2 people
- project-2 may be undertaken by 1 or 2 people
You may have different partners for each project.
Just "Chris".
Glad that you resolved the problem, even if it took such drastic measures.
I can't imagine how why you'd be seeing the error you did without it also appearing in so many other situations.
This problem has me stumped.
I've tried your code on 2 Apple M2 (Xcode) installations, Ubuntu Linux (gcc), and Redhat Linux (an earlier gcc), and all produced the expected result.
I can't imagine why your installation would produce those weird, large v...
Lots of students emailing with common questions about Project-1, so please read https teaching.csse.uwa.edu.au units CITS2002 projects project1.php
which should answer all of your questions before the project's release. Good luck,
The default installation of vim simply displays its text in monochrome, but by adding
commands to (one of) vim's "startup files", it will add colours to code keywords, comments, ....
To download and add the necessary commands to vim's startup file
pr...
Using foreground background job control in your shell
The traditional (40 year old) way to run the vim editor is inside the
same window that receives your shell commands. I choose to edit files
and compile them in the same window (and in most of my wo...
ANONYMOUS wrote
Yes, the digital certificate expired on Saturday, affecting those on Unify and via the VPN.
UWA-IT have been informed (though, you'd think they would have already been aware of it).
Just "Chris".
I'm afraid that I can't tell from your description alone.
It's likely to be the use of an incorrect datatype or a formatting error - not sure.
As the exercise is not being assessed, please post your code here.
In Friday's workshop we discussed the forthcoming challenge of storing time values in 32-bit integers. Here's a recent article on how Debian Linux is addressing it
Debian looks forward to 2038
https lwn.net Articles 938149
"On January 19, 2038, the...
ANONYMOUS wrote
Have a look at the sample solution for the lab; you'll see that the 'magic calculation' is 1 - firstday;
At the end of the workshop I also asked those attending about the difficulty of the workshop - there was about 100 students there...
Some sample solutions for Labsheet-1 and Workshop-2 are now available from our Schedule page https teaching.csse.uwa.edu.au units CITS2002 schedule.php
Sample solutions will be available each week, but I won't make an announcement, such as this, eve...
Tracing the Lines From the Telephone to Unix
https www.deusinmachina.net p history-of-unix
"Starting in 1925, and still around 98 years later (albeit with a few name changes), Bell Labs has done some incredible things during its lifespan. Propelled ...
This invitation is for the semester 2 meeting of the CS education committee in room 2.07 Computer Science building.
Tuesday 22nd August at 1pm.
This committee meets once a semester (Tuesday 1pm around week 5 or 6 for one hour).
The full committee consis...
Throw away your first draft of your code
https ntietz.com blog throw-away-your-first-draft
"The next time you start on a major project, I want you to write code for a couple of days and then delete it all. Just throw it away."
...
I'm not proposing th...
Western Digital HDD capacity hits 28TB as Seagate looks to 30TB and beyond
https arstechnica.com gadgets 2023 08 western-digital-hdd-capacity-hits-28tb-as-seagate-looks-to-30tb-and-beyond
"After a couple of decades of talk, Seagate announced earlier...
In today's lecture I mentioned a famous keynote talk at an OS conference that had its audience thinking. Found it
Systems Software Research is Irrelevant
http doc.cat-v.org bell labs utah2000 utah2000.pdf
"This talk is a polemic that distills th...
While not an OS topic we focus on, this ArsTechnica article provides a great summary of contemporary mainframes
The IBM mainframe How it runs and why it survives
https arstechnica.com information-technology 2023 07 the-ibm-mainframe-how-it-runs...
Nothing particular that I remember, other than encouragement to read through the webpages outlining Linux and C compiler software before commencing next week's Labsheet-1.
ANONYMOUS wrote
Firstly (because I'm a bit of a pedant about using the correct terminology) it's not WSL that's providing the online manual that you're reading. WSL is a program enabling you to run a Linux distribution 'inside' WSL. Ubuntu is one s...
Thanks.
I'd presumed that they'd already done that, if (hopefully) following the instructions here https teaching.csse.uwa.edu.au units CITS2002 labsheets software.php
But maybe....
The package manpages-posix is correctly named and still exists, https...
You're welcome to use Virtualbox if you prefer it - this unit doesn't require (or assess) any virtualisation software required to give you access to Linux on your own devices.
Thanks Chris; wasn't aware of this.
To others, maybe wondering why this was posted - UWA-IT used to run RHEL on students' lab computers (I think that they only support Linux in CSSE and EECE), but that choice was an annoyance because UWA-IT couldn't g...
While there are no structured lab sessions in Week-1, you may like to start reading some introductory material on using the Linux operating system and the standard C compiler (including the C compiler on your Mac, if that is your chosen platform).
In...
Please complete 2 Student Experience Surveys that UWA is participating in during August
- The national QILT Student Experience Survey (SES), conducted for the Australian Government Department of Education https www.qilt.edu.au surveys student-expe...
ANONYMOUS wrote
Yes, that's what it's reporting in its Table 4.
And from that table, it's easy to explain why - if an equivalent Python program takes 70x longer to execute, and Python is still executing as fast as it can on the same CPU, then it'll ex...
In the 1st lecture, I mentioned that some computing environments, such as cloud-based platforms, are very concerned about their energy consumption (at least to minimise costs), and their environmental impact.
Here's an interesting article on that topi...
It appears that UWA-ITS have corrected their network configuration, and so our unit's webpage teaching.csse.uwa.edu.au units CITS2002 is available without requiring the VPN.
(please report any similar problems if they appear more than just transien...
ANONYMOUS wrote
Yes, I did speak past 9 52 yesterday, but only to say that I have another lecture at 10am (every Monday), and asked students not to rush to the front after the lecture with individual questions (that request was ignored).
There's alway...
Hello,
Pronounced just 'Chris'.
I have no control over the lecture recordings. Recording starts automatically at 8 58 and finishes at 9 52; anything that passes through the microphone or the video projectors is recorded, trimmed, and stored somewhere...