diff --git a/cst311/lec/lec1.md b/311/lec/lec1.md similarity index 100% rename from cst311/lec/lec1.md rename to 311/lec/lec1.md diff --git a/cst311/lec/lec10.md b/311/lec/lec10.md similarity index 100% rename from cst311/lec/lec10.md rename to 311/lec/lec10.md diff --git a/cst311/lec/lec11.md b/311/lec/lec11.md similarity index 100% rename from cst311/lec/lec11.md rename to 311/lec/lec11.md diff --git a/cst311/lec/lec12.md b/311/lec/lec12.md similarity index 100% rename from cst311/lec/lec12.md rename to 311/lec/lec12.md diff --git a/cst311/lec/lec13.md b/311/lec/lec13.md similarity index 100% rename from cst311/lec/lec13.md rename to 311/lec/lec13.md diff --git a/cst311/lec/lec14.md b/311/lec/lec14.md similarity index 100% rename from cst311/lec/lec14.md rename to 311/lec/lec14.md diff --git a/cst311/lec/lec15.md b/311/lec/lec15.md similarity index 100% rename from cst311/lec/lec15.md rename to 311/lec/lec15.md diff --git a/cst311/lec/lec16.md b/311/lec/lec16.md similarity index 100% rename from cst311/lec/lec16.md rename to 311/lec/lec16.md diff --git a/cst311/lec/lec17.md b/311/lec/lec17.md similarity index 100% rename from cst311/lec/lec17.md rename to 311/lec/lec17.md diff --git a/cst311/lec/lec18.md b/311/lec/lec18.md similarity index 100% rename from cst311/lec/lec18.md rename to 311/lec/lec18.md diff --git a/cst311/lec/lec19.md b/311/lec/lec19.md similarity index 100% rename from cst311/lec/lec19.md rename to 311/lec/lec19.md diff --git a/cst311/lec/lec2.md b/311/lec/lec2.md similarity index 100% rename from cst311/lec/lec2.md rename to 311/lec/lec2.md diff --git a/cst311/lec/lec20.md b/311/lec/lec20.md similarity index 100% rename from cst311/lec/lec20.md rename to 311/lec/lec20.md diff --git a/cst311/lec/lec21.md b/311/lec/lec21.md similarity index 100% rename from cst311/lec/lec21.md rename to 311/lec/lec21.md diff --git a/cst311/lec/lec22.md b/311/lec/lec22.md similarity index 100% rename from cst311/lec/lec22.md rename to 311/lec/lec22.md diff --git a/cst311/lec/lec23.md b/311/lec/lec23.md similarity index 100% rename from cst311/lec/lec23.md rename to 311/lec/lec23.md diff --git a/cst311/lec/lec3.md b/311/lec/lec3.md similarity index 100% rename from cst311/lec/lec3.md rename to 311/lec/lec3.md diff --git a/cst311/lec/lec4.md b/311/lec/lec4.md similarity index 100% rename from cst311/lec/lec4.md rename to 311/lec/lec4.md diff --git a/cst311/lec/lec5.md b/311/lec/lec5.md similarity index 100% rename from cst311/lec/lec5.md rename to 311/lec/lec5.md diff --git a/cst311/lec/lec6.md b/311/lec/lec6.md similarity index 100% rename from cst311/lec/lec6.md rename to 311/lec/lec6.md diff --git a/cst311/lec/lec7.md b/311/lec/lec7.md similarity index 100% rename from cst311/lec/lec7.md rename to 311/lec/lec7.md diff --git a/cst311/lec/lec8.md b/311/lec/lec8.md similarity index 100% rename from cst311/lec/lec8.md rename to 311/lec/lec8.md diff --git a/cst311/lec/lec9.md b/311/lec/lec9.md similarity index 100% rename from cst311/lec/lec9.md rename to 311/lec/lec9.md diff --git a/cst311/readme.md b/311/readme.md similarity index 100% rename from cst311/readme.md rename to 311/readme.md diff --git a/312/notes/public-private.md b/312/notes/public-private.md new file mode 100644 index 0000000..ba5c696 --- /dev/null +++ b/312/notes/public-private.md @@ -0,0 +1,38 @@ +# Asymmetric Key Encryption(Public/Private) + + +Think of a box that we put things inside of:(put simply) + +* Private key: can open the box +* Public key: can lock the box + +The idea works on the principle that public keys are public so anyone can lock a message down but only the owner/creator of that public key can open those locked messages with their private key. + +## Public Keys + +Can be used to open something if it was locked with a private key. + +## Private Keys + +If used to lock something the public key can be used to then open the box. +_The catch_: that message is also signed so we know exactly who the message is coming from. + +## Both together + +> Message => Lock(message, private key) + +_Sign_ the message + +> Signed Message => Lock(signed message, public key) + +Lock the message like normal + +Once the intended person has the package they: + +* Open it with their private key +* Check the signature +* Find the public key for that signature +* Open the remaining layer with the public key + +That last part only works because locking with a private key allows the public key to open the box afterwards. + diff --git a/312/notes/public.md b/312/notes/public.md deleted file mode 100644 index 1457af3..0000000 --- a/312/notes/public.md +++ /dev/null @@ -1,16 +0,0 @@ -# Asymmetric Key Encryption(Public/Private) - - -Think of a box that we put things inside of:(put simply) - -* Private key: can open the box -* Public key: can lock the box - -Caveats: - -Public keys contain a unique signature, which can be used to _sign_ a message. Even though everyone can open the message they also know who locked the box. - -Imagine then, lock the box with private key(secure) and sign it with the public key(authorized). - - - diff --git a/312/notes/rsa.md b/312/notes/rsa.md new file mode 100644 index 0000000..fecb105 --- /dev/null +++ b/312/notes/rsa.md @@ -0,0 +1,40 @@ +# Procedure + + +Example using 3 values: + +* p = 3 +* q = 17 +* e = 15 +* m = 3 + +There are a few components which must be calculated before we can safely determine a cipher text: + +`n = p * q` : note that `p` and `q` values should be primes in this case. + +`O(n) = (p - 1) * (q - 1)` is used later to verify that we have a value `d` which is the inverse of `e`. _We call this the quotient function_. + + +## Encryption + +To produce a cipher text `C` we take `m` and raise it to the power of `e`(from earlier) then take the modulor of it by `n`: + +``` +C = (m^e) % n +``` + +`m` is the desired message to encrypt. + +The public and private keys are using the above cipher text functions whose unknown parameters are passed as follows + +`PublicKey(e, n)` + +`PrivateKey(d, n)` + +## Decryption + +The reverse of this is the following: + +``` +M = (c^d) % n +``` diff --git a/cst337/img/fig0lec10.png b/337/img/fig0lec10.png similarity index 100% rename from cst337/img/fig0lec10.png rename to 337/img/fig0lec10.png diff --git a/cst337/img/fig1lec10.png b/337/img/fig1lec10.png similarity index 100% rename from cst337/img/fig1lec10.png rename to 337/img/fig1lec10.png diff --git a/cst337/img/fig2lec10.png b/337/img/fig2lec10.png similarity index 100% rename from cst337/img/fig2lec10.png rename to 337/img/fig2lec10.png diff --git a/cst337/img/not.png b/337/img/not.png similarity index 100% rename from cst337/img/not.png rename to 337/img/not.png diff --git a/337/lec/lec1.md b/337/lec/lec1.md new file mode 100644 index 0000000..75fc202 --- /dev/null +++ b/337/lec/lec1.md @@ -0,0 +1,155 @@ +# lec1 + +> What on earth? + +The first lecture has bee 50% syllabus 25% videos, 25% simple terminology; expect nothing interesting for this section + +## General Performance Improvements in software + + +In general we have a few options to increase performace in software; pipelining, parallelism, prediction. + +1. Parallelism + +If we have multiple tasks to accomplish or multiple sources of data we might instead find it better to work on multiple things at once[e.g. multi-threading, multi-core rendering] + +2. Pipelining + +Here we are somehow taking _data_ and serializing it into a linear form. +We do things like this because it could make sense to things linearly[e.g. taking data from a website response and forming it into a struct/class instance in C++/Java et al.]. + +3. Prediction + +If we can predict an outcome to avoid a bunch of computation then it could be worth to take our prediction and proceed with that instead of the former. +This happens **a lot** in cpu's where they use what's called [branch prediction](https://danluu.com/branch-prediction/) to run even faster. + +## Cost of Such Improvements + +As the saying goes: every decision you make as an engineer ultimately has a cost, let's look at the cost of these improvements. + +1. Parallelism + +If we have a data set which has some form of inter-dependencies between its members then we could easily run into the issue of waiting on other things to finish. + +Contrived Example: + +``` +Premise: output file contents -> search lines for some text -> sort the resulting lines + +We have to do the following processes: +print my-file.data +search file +sort results of the search + +In bash we might do: cat my-file.data | grep 'Text to search for' | sort +``` + +Parallelism doesn't make sense here for one reason: this series of proccesses don't benefit from parallelism because the 2nd and 3rd tasks _must_ wait until the previous ones finish first. + +2. Pipelining + +Let's say we want to do the following: + +``` +Search file1 for some text : [search file1] +Feed the results of the search into a sorting program [sort] + +Search file2 for some text [search file2] +Feed the results of the search into a reverse sorting program [reverse sort] + +The resulting Directed Acyclic Graph looks like + +[search file1] => [sort] + +[search file2] => [reverse sort] +``` + +Making the above linear means we effectively have to: + +``` +[search file1] => [sort] [search file2] => [reverse sort] +| proc2 waiting........| +``` + +Which wastes a lot of time if the previous process is going to take a long time. +Bonus points if process 2 is extremely short. + + +3. Prediction + +Ok two things up front: + +* First: prediction's fault is that we could be wrong and have to end up doing hard computations. +* Second: _this course never covers branch prediction(something that pretty much every cpu in the last 20 years out there does)_ so I'm gonna cover it here; ready, let's go. + +For starters let's say a basic cpu takes instructions sequentially in memory: `A B C D`. +However this is kinda slow because there is _time_ between getting instructions, decoding it to know what instruction it is and finally executing it proper. +For this reason modern CPU's actually fetch, decode, and execute(and more!) instructions all at the same time. + +Instead of getting instructions like this: + + +``` +0 + AA + BB + CC + DD +``` + +We actually do something more like this + +``` +A + AB + BC + CD + D0 +``` + +If it doesn't seem like much remember this is half an instruction on a chip that is likely going to process thousands/millions of instructions so the savings scales really well. + + +This scheme is fine if our instructions are all coming one after the other in memory, but if we need to branch then we likely need to jump to a new location like so. + +``` +ABCDEFGHIJKL +^^^* ^ + |-----| +``` + +Now say we have the following code: + +``` +if (x == 123) { + main_call(); +} +else { + alternate_call(); +} +``` + +The (psuedo)assembly might look like + +```asm + cmp x, 123 + je second +main_branch: ; pointless label but nice for reading + call main_call + jmp end +second: + call alternate_call +end: + ; something to do here +``` + +Our problem comes when we hit the je. +Once we've loaded that instruction and can start executing it, we have to make a decision, load the `call main_call` instruction or the `call alternate_call`? +Chances are that if we guess we have a 50% change of saving time and 50% chance of tossing out our guess and starting the whole _get instruction => decode etc._ process over again from scratch. + +Solution 1: + +Try do determine what branches are taken prior to running the program and just always guess the more likely branches. +If we find that the above branch calls `main_branch` more often then we should load that branch always; knowing that the loss from being wrong is offset by the gain from the statistically more often correct branches. + +... diff --git a/cst337/lec/lec10.md b/337/lec/lec10.md similarity index 87% rename from cst337/lec/lec10.md rename to 337/lec/lec10.md index 5425808..0908e42 100644 --- a/cst337/lec/lec10.md +++ b/337/lec/lec10.md @@ -18,12 +18,12 @@ _Try to do this on your own first!_ ![fig1](../mg/fig1llec11.png) Next we'll add on the `xor`. -AGAIN: try to do this on your own, the main hint I'll give here is: the current mux needs to be changed. +Try doing this on your own but as far as hints go: don't be afraid to make changes to the mux. ![fig2](../img/fig2lec11.png) Finally we'll add the ability to add and subtract. -You may have also noted that we can subtract two things to see if they are the same dhowever, we can also `not` the result of the `xor` and get the same result. +You may have also noted that we can subtract two things to see if they are the same however, we can also `not` the result of the `xor` and get the same result. ![fig3](../img/fig3lec11.png) diff --git a/cst337/lec/lec11.md b/337/lec/lec11.md similarity index 100% rename from cst337/lec/lec11.md rename to 337/lec/lec11.md diff --git a/cst337/lec/lec12.md b/337/lec/lec12.md similarity index 100% rename from cst337/lec/lec12.md rename to 337/lec/lec12.md diff --git a/cst337/lec/lec13.md b/337/lec/lec13.md similarity index 100% rename from cst337/lec/lec13.md rename to 337/lec/lec13.md diff --git a/cst337/lec/lec14.md b/337/lec/lec14.md similarity index 100% rename from cst337/lec/lec14.md rename to 337/lec/lec14.md diff --git a/cst337/lec/lec15.md b/337/lec/lec15.md similarity index 100% rename from cst337/lec/lec15.md rename to 337/lec/lec15.md diff --git a/cst337/lec/lec16.md b/337/lec/lec16.md similarity index 100% rename from cst337/lec/lec16.md rename to 337/lec/lec16.md diff --git a/cst337/lec/lec17.md b/337/lec/lec17.md similarity index 100% rename from cst337/lec/lec17.md rename to 337/lec/lec17.md diff --git a/cst337/lec/lec18.md b/337/lec/lec18.md similarity index 100% rename from cst337/lec/lec18.md rename to 337/lec/lec18.md diff --git a/cst337/lec/lec19.md b/337/lec/lec19.md similarity index 100% rename from cst337/lec/lec19.md rename to 337/lec/lec19.md diff --git a/cst337/lec/lec2.md b/337/lec/lec2.md similarity index 100% rename from cst337/lec/lec2.md rename to 337/lec/lec2.md diff --git a/cst337/lec/lec3.md b/337/lec/lec3.md similarity index 100% rename from cst337/lec/lec3.md rename to 337/lec/lec3.md diff --git a/cst337/lec/lec4.md b/337/lec/lec4.md similarity index 100% rename from cst337/lec/lec4.md rename to 337/lec/lec4.md diff --git a/cst337/lec/lec5.md b/337/lec/lec5.md similarity index 100% rename from cst337/lec/lec5.md rename to 337/lec/lec5.md diff --git a/cst337/lec/lec6.md b/337/lec/lec6.md similarity index 100% rename from cst337/lec/lec6.md rename to 337/lec/lec6.md diff --git a/cst337/lec/lec7.md b/337/lec/lec7.md similarity index 100% rename from cst337/lec/lec7.md rename to 337/lec/lec7.md diff --git a/cst337/lec/lec8.md b/337/lec/lec8.md similarity index 100% rename from cst337/lec/lec8.md rename to 337/lec/lec8.md diff --git a/cst337/lec/lec9.md b/337/lec/lec9.md similarity index 100% rename from cst337/lec/lec9.md rename to 337/lec/lec9.md diff --git a/cst337/readme.md b/337/readme.md similarity index 100% rename from cst337/readme.md rename to 337/readme.md diff --git a/cst363/lab/1994-census-summary.sql b/363/lab/1994-census-summary.sql similarity index 100% rename from cst363/lab/1994-census-summary.sql rename to 363/lab/1994-census-summary.sql diff --git a/cst363/lab/aggregation-lab.pdf b/363/lab/aggregation-lab.pdf similarity index 100% rename from cst363/lab/aggregation-lab.pdf rename to 363/lab/aggregation-lab.pdf diff --git a/cst363/lab/campaign-ca-2016.sql b/363/lab/campaign-ca-2016.sql similarity index 100% rename from cst363/lab/campaign-ca-2016.sql rename to 363/lab/campaign-ca-2016.sql diff --git a/cst363/lab/constraints-lab.pdf b/363/lab/constraints-lab.pdf similarity index 100% rename from cst363/lab/constraints-lab.pdf rename to 363/lab/constraints-lab.pdf diff --git a/cst363/lab/courses-ddl.sql b/363/lab/courses-ddl.sql similarity index 100% rename from cst363/lab/courses-ddl.sql rename to 363/lab/courses-ddl.sql diff --git a/cst363/lab/courses-small.sql b/363/lab/courses-small.sql similarity index 100% rename from cst363/lab/courses-small.sql rename to 363/lab/courses-small.sql diff --git a/cst363/lab/db-mods-transactions-lab.pdf b/363/lab/db-mods-transactions-lab.pdf similarity index 100% rename from cst363/lab/db-mods-transactions-lab.pdf rename to 363/lab/db-mods-transactions-lab.pdf diff --git a/cst363/lab/hashing-lab.pdf b/363/lab/hashing-lab.pdf similarity index 100% rename from cst363/lab/hashing-lab.pdf rename to 363/lab/hashing-lab.pdf diff --git a/cst363/lab/in-memory-search-lab.pdf b/363/lab/in-memory-search-lab.pdf similarity index 100% rename from cst363/lab/in-memory-search-lab.pdf rename to 363/lab/in-memory-search-lab.pdf diff --git a/cst363/lab/index-structures-lab.pdf b/363/lab/index-structures-lab.pdf similarity index 100% rename from cst363/lab/index-structures-lab.pdf rename to 363/lab/index-structures-lab.pdf diff --git a/cst363/lab/on-disk-search-lab.pdf b/363/lab/on-disk-search-lab.pdf similarity index 100% rename from cst363/lab/on-disk-search-lab.pdf rename to 363/lab/on-disk-search-lab.pdf diff --git a/cst363/lab/other-operations-lab.pdf b/363/lab/other-operations-lab.pdf similarity index 100% rename from cst363/lab/other-operations-lab.pdf rename to 363/lab/other-operations-lab.pdf diff --git a/cst363/lab/outer-joins-lab.pdf b/363/lab/outer-joins-lab.pdf similarity index 100% rename from cst363/lab/outer-joins-lab.pdf rename to 363/lab/outer-joins-lab.pdf diff --git a/cst363/lab/patients.sql b/363/lab/patients.sql similarity index 100% rename from cst363/lab/patients.sql rename to 363/lab/patients.sql diff --git a/cst363/lab/simple-joins-lab.pdf b/363/lab/simple-joins-lab.pdf similarity index 100% rename from cst363/lab/simple-joins-lab.pdf rename to 363/lab/simple-joins-lab.pdf diff --git a/cst363/lab/simple-joins.pdf b/363/lab/simple-joins.pdf similarity index 100% rename from cst363/lab/simple-joins.pdf rename to 363/lab/simple-joins.pdf diff --git a/cst363/lab/single-table-queries-2-lab.pdf b/363/lab/single-table-queries-2-lab.pdf similarity index 100% rename from cst363/lab/single-table-queries-2-lab.pdf rename to 363/lab/single-table-queries-2-lab.pdf diff --git a/cst363/lab/table.pdf b/363/lab/table.pdf similarity index 100% rename from cst363/lab/table.pdf rename to 363/lab/table.pdf diff --git a/cst363/lab/triggers-lab.pdf b/363/lab/triggers-lab.pdf similarity index 100% rename from cst363/lab/triggers-lab.pdf rename to 363/lab/triggers-lab.pdf diff --git a/cst363/lab/views-lab.pdf b/363/lab/views-lab.pdf similarity index 100% rename from cst363/lab/views-lab.pdf rename to 363/lab/views-lab.pdf diff --git a/cst363/lec/lec1.md b/363/lec/lec1.md similarity index 100% rename from cst363/lec/lec1.md rename to 363/lec/lec1.md diff --git a/cst363/lec/lec10.md b/363/lec/lec10.md similarity index 100% rename from cst363/lec/lec10.md rename to 363/lec/lec10.md diff --git a/cst363/lec/lec11.md b/363/lec/lec11.md similarity index 100% rename from cst363/lec/lec11.md rename to 363/lec/lec11.md diff --git a/cst363/lec/lec12.md b/363/lec/lec12.md similarity index 100% rename from cst363/lec/lec12.md rename to 363/lec/lec12.md diff --git a/cst363/lec/lec13.md b/363/lec/lec13.md similarity index 100% rename from cst363/lec/lec13.md rename to 363/lec/lec13.md diff --git a/cst363/lec/lec14.md b/363/lec/lec14.md similarity index 100% rename from cst363/lec/lec14.md rename to 363/lec/lec14.md diff --git a/cst363/lec/lec15.md b/363/lec/lec15.md similarity index 100% rename from cst363/lec/lec15.md rename to 363/lec/lec15.md diff --git a/cst363/lec/lec16.md b/363/lec/lec16.md similarity index 100% rename from cst363/lec/lec16.md rename to 363/lec/lec16.md diff --git a/cst363/lec/lec17.md b/363/lec/lec17.md similarity index 100% rename from cst363/lec/lec17.md rename to 363/lec/lec17.md diff --git a/cst363/lec/lec18.md b/363/lec/lec18.md similarity index 100% rename from cst363/lec/lec18.md rename to 363/lec/lec18.md diff --git a/cst363/lec/lec19.md b/363/lec/lec19.md similarity index 100% rename from cst363/lec/lec19.md rename to 363/lec/lec19.md diff --git a/cst363/lec/lec2.md b/363/lec/lec2.md similarity index 100% rename from cst363/lec/lec2.md rename to 363/lec/lec2.md diff --git a/cst363/lec/lec20.md b/363/lec/lec20.md similarity index 100% rename from cst363/lec/lec20.md rename to 363/lec/lec20.md diff --git a/cst363/lec/lec21.md b/363/lec/lec21.md similarity index 100% rename from cst363/lec/lec21.md rename to 363/lec/lec21.md diff --git a/cst363/lec/lec22.md b/363/lec/lec22.md similarity index 100% rename from cst363/lec/lec22.md rename to 363/lec/lec22.md diff --git a/cst363/lec/lec23.md b/363/lec/lec23.md similarity index 100% rename from cst363/lec/lec23.md rename to 363/lec/lec23.md diff --git a/cst363/lec/lec24.md b/363/lec/lec24.md similarity index 100% rename from cst363/lec/lec24.md rename to 363/lec/lec24.md diff --git a/cst363/lec/lec25.md b/363/lec/lec25.md similarity index 100% rename from cst363/lec/lec25.md rename to 363/lec/lec25.md diff --git a/cst363/lec/lec26.md b/363/lec/lec26.md similarity index 100% rename from cst363/lec/lec26.md rename to 363/lec/lec26.md diff --git a/cst363/lec/lec3.md b/363/lec/lec3.md similarity index 100% rename from cst363/lec/lec3.md rename to 363/lec/lec3.md diff --git a/cst363/lec/lec4.md b/363/lec/lec4.md similarity index 100% rename from cst363/lec/lec4.md rename to 363/lec/lec4.md diff --git a/cst363/lec/lec5.md b/363/lec/lec5.md similarity index 100% rename from cst363/lec/lec5.md rename to 363/lec/lec5.md diff --git a/cst363/lec/lec6.md b/363/lec/lec6.md similarity index 100% rename from cst363/lec/lec6.md rename to 363/lec/lec6.md diff --git a/cst363/lec/lec7.md b/363/lec/lec7.md similarity index 100% rename from cst363/lec/lec7.md rename to 363/lec/lec7.md diff --git a/cst363/lec/lec8.md b/363/lec/lec8.md similarity index 100% rename from cst363/lec/lec8.md rename to 363/lec/lec8.md diff --git a/cst363/lec/lec9.md b/363/lec/lec9.md similarity index 100% rename from cst363/lec/lec9.md rename to 363/lec/lec9.md diff --git a/cst363/project/report.md b/363/project/report.md similarity index 100% rename from cst363/project/report.md rename to 363/project/report.md diff --git a/cst363/project/todo.md b/363/project/todo.md similarity index 100% rename from cst363/project/todo.md rename to 363/project/todo.md diff --git a/cst363/readme.md b/363/readme.md similarity index 100% rename from cst363/readme.md rename to 363/readme.md diff --git a/412/data.md b/412/data.md new file mode 100644 index 0000000..697778b --- /dev/null +++ b/412/data.md @@ -0,0 +1,40 @@ +# Data storage + +## Spinning Disks + +Cheaper for more storage + + +## RAID - Redundant Array of Independent Disk + +Raid 0: basically cramming multiple drives and treating them as one. Data is striped across the drives but if one fails then you literally lose a chunk of data. + +Raid 1: data is mirrored across the drives so it's completely redundant so if one fails the other is still alive. It's not a backup however since file updates will affect all the drives. + +Raid 5: parity. Combining multiple drives allows us to establish the parity of the data on other drives to recover that data if it goes missing.(min 3 drives) + +Raid 6: same in principle as raid 5 but this time we have an extra drive for just parity. + +Raid 10: 0 and 1 combined to have a set of drives in raid 0 and putting those together in raid 1 with another equally sized set of drives. + +## Network Attached Storage - NAS + +Basically space stored on the local network. + +## Storage Attached Network - SAN + +Applicable when we virtualise whole os's for users, we use a storage device attached to the network to use different operating systems + + +# Managing Storage + +Outsourcing the storage for users to services like Onedrive because it becomes their problem and not ours. + +# Storage as a Service + +Ensure that the OS gets its own space/partition on a drive and give the user their own partition to ruin. That way the OS(windows) will just fill its partition into another dimension. + + +# Print Services + + diff --git a/cst337/lec/lec1.md b/cst337/lec/lec1.md deleted file mode 100644 index 42a8820..0000000 --- a/cst337/lec/lec1.md +++ /dev/null @@ -1,16 +0,0 @@ -# lec1 - -> What on earth? - -The first lecture has bee 50% syllabus 25% videos, 25% simple terminology; expect nothing interesting for this section - -## Performace Options -In general we have a few options to increase performace in software; pipelining, parallelism, prediction. - -Parallelism/Pipelining - -* I'll just assume you know what this entail; one does many things at once; the other is like queues for processessing. - -* Prediction - -Yes this means interpreting potential outcomes/inputs/outputs etc. __BRANCHING__. We try to predict potentiality and account for it ahead of time. diff --git a/env/SBS 385 Take Home Final Exam Sp 2019 (1).docx b/sbs385/SBS 385 Take Home Final Exam Sp 2019 (1).docx similarity index 100% rename from env/SBS 385 Take Home Final Exam Sp 2019 (1).docx rename to sbs385/SBS 385 Take Home Final Exam Sp 2019 (1).docx diff --git a/env/ch1011.md b/sbs385/ch1011.md similarity index 100% rename from env/ch1011.md rename to sbs385/ch1011.md diff --git a/env/ch5.md b/sbs385/ch5.md similarity index 100% rename from env/ch5.md rename to sbs385/ch5.md diff --git a/env/ch6.md b/sbs385/ch6.md similarity index 100% rename from env/ch6.md rename to sbs385/ch6.md diff --git a/env/ch7.md b/sbs385/ch7.md similarity index 100% rename from env/ch7.md rename to sbs385/ch7.md diff --git a/env/final.docx b/sbs385/final.docx similarity index 100% rename from env/final.docx rename to sbs385/final.docx diff --git a/env/final.md b/sbs385/final.md similarity index 100% rename from env/final.md rename to sbs385/final.md diff --git a/env/final.pdf b/sbs385/final.pdf similarity index 100% rename from env/final.pdf rename to sbs385/final.pdf diff --git a/env/makefile b/sbs385/makefile similarity index 100% rename from env/makefile rename to sbs385/makefile diff --git a/env/q.md b/sbs385/q.md similarity index 100% rename from env/q.md rename to sbs385/q.md