1. 운영체제의 정의
운영체제(operating system)는 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 말한다.
‘시스템’
: 기반이나 틀이 되는 하드웨어 장치
<aside> 💡 운영체제에 왜 영어로 시스템이라는 것이 사용될까?
</aside>
소프트웨어인 운영체제에 시스템이라는 용어가 사용된 것은 하드웨어가 운영체제와 한 몸이 되어야만 사용자에게 쓰일 수 있는 진정한 컴퓨터 시스템이 되기 때문.
좀 더 쉽게 설명
전원을 켰을 때 운영체제가 없으면 그 컴퓨터는 고철 덩어리에 불과하며, 이와 같은 고철 덩어리를 동작시키기 위해서 필요한 기본적인 소프트웨어가 바로 운영체제라는 뜻
사용자 입장에서는 하드웨어 자체를 다룬다는 것이 쉽지 않으므로, 하드웨어 위에 기본적으로 운영체제를 탑재해 전원을 켰을 때 손쉽게 사용할 수 있는 상태가 되도록 하는 것이다.
소프트웨어들은 그림 2-1과 같이 하드웨어와 운영체제가 한 몸으로 존재하는 컴퓨터 시스템 위에서 수행되는 것으로 볼 수 있다.
운영체제 실행
컴퓨터의 전원을 켜면 운영체제는 이와 동시에 실행된다.
- 소프트웨어가 컴퓨터 시스템에서 실행되기 위해서는 메모리에 그 프로그램이 올라가야함.
- 운영체제 자체도 하나의 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라간다.
BUT
운영체제처럼 규모가 큰 프로그램이 모두 동시에 올라간다면 한정된 메모리 공간의 낭비가 심할 것이다.
- 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리로 올려서 사용하게 된다. → 커널
커널
메모리에 상주하는 운영체제의 부분을 커널이라고 한다.
- 운영체제 코드 중에서도 핵심적인 부분을 뜻한다.
2. 운영체제의 기능
운영체제의 역할은 하드웨어를 위한 역할과 사용자를 위한 역할의 두가지로 나누어 볼 수 있다.
하드웨어 쪽 : 사용자가 직접 다루기 힘든 각종 하드웨어를 운영체제가 관리하는 역할을 한다.
사용자 쪽 : 편리한 인터페이스를 제공하는 역할을 한다.
좀 더 쉽게 말하면
- 컴퓨터 시스템 내의 자원을 효율적으로 관리하는 것
- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
- 편리한 환경 = 운영체제가 여러 사용자 및 프로그램들에게 각각 독자적으로 컴퓨터를 사용하는 것과 같은 ‘환상’을 제공하는 것을 말한다.
운영체제의 기능 중 사용자에게 편리한 환경을 제공하는 것 보다도 중요한 핵심 기능은 컴퓨터 시스템 내의 자원을 효율적으로 관리하는 것이다.
운영 체제 == 자원관리자(resource manager)
- 자원이란?
- CPU, 메모리, 하드디스크 등 하드웨어 자원 뿐 아니ㅏ라 소프트웨어 자원까지를 통칭해서 부르는 말
이것을 위해 전체적인 성능을 향상시키려다보면 일부 프로그램 또는 사용자가 불이익을 당할 수 있음.
→ 운영체제는 사용자 및 프로그램 들 간에 자원이 형평성 있게 분배되도록 하는 균형자 역할도 함께 수행!!
또 다른 기능
- 사용자와 운영체제 자신을 보호하는 역할을 담당한다.
- 악의성 프로그램, 개인 파일 보안
3. 운영체제의 분류
운영체제의 분류
운영체제는 분류 기준은 3가지가 있다
- 동시 작업을 지원하는지의 여부
- 다중 사용자에 대한 동시 지원 여부
- 작업을 처리하는 방식
동시 작업을 지원하는지의 여부
단일 작업용 운영체제
- 단일작업용 운영체제는 한 번에 하나의 프로그램만 실행시킬 수 있는 운영체제
- 초장기 운영체제는 대개 단일작업용 운영체제에 해당 되었다 ex) MS윈도우가 나오기 전인 도스
다중 작업용 운영체제
또 다른 이름
여러 프로그램을 같이 실행 시키지만 사용자 개개인의 관점에서는 각 프로그램에 대한 키보드 입출력의 결과를 곧바로 화면에 보여주기 때문에 대화형 시스템(interactive system)이라고도 부른다.
- 운영체제가 동시에 2개 이상의 프로그램을 처리할 수 있는 것.다중 작업용 또 다른 이름다중 작업 처리할 때 CPU와 메모리를 공유하게 됨.
- CPU
- CPU가 하나밖에 없어 매 순간 하나의 프로그램만 CPU에서 실행될 수 있더라도 CPU의 처리 속도가 워낙 빨라 수 밀리초 이내의 짧은 시간 규모로 여러 프로그램들이 CPU에서 번갈아 실행되면 사용자 입장에서는 여러 프로그램이 동시에 실행되는 것처럼 보이기 때문이다. 이와 같이 CPU의 작업 시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템을 시분할 시스템(tine sharing system)이라고 한다.
- 메모리
- 여러 프로그램들이 조금씩 메모리 공간을 보유하며 동시에 메모리에 올라가 있을 수 있다. 이처럼 메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템을 다중 프로그램밍 시스템이라고 부른다.
- CPU
여러 사용자가 동시에 접속해서 쓰는 서버인 경우에도 서버 컴퓨터에 그 서버를 자기 혼자 사용하는 것처럼 느끼게 해주므로 대화형 시스템에 해당함.
- 컴퓨터 1대 안에 CPU가 여러 개 설치된 경우는 다중처리기 시스템(multi-processor system)
→CPU가 여럿 있는 컴퓨터는 서로 다른 CPU에서 여러 프로그램이 동시에 실행될 수 있어 처리가 더욱 빨라지지만, 운영 체제 입장에서는 여러 CPU를 관리하기 위해 더욱 복잡한 메커니즘을 필요로 함.
- ex) MS 윈도우나 유닉스 환경 → 서로 다른 창에 동시에 띄워놓을 수 있는 것
다중 사용자에 대한 동시 지원 여부
-
- 단일 사용자용 운영체제
- 단일 작업
- 다중 작업
- DOS처럼 한 번에 하나의 작업만 수행할 수 있는 경우와 MS윈도우 처럼 혼자 사용하지만 다중 작업이 가능한 경우로 나누어 볼 수 있다.
- 다중 사용자용 운영체제
- 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제를 다중 사용자용 운영체제라고 함.
- 이메일 서버나 웹서버 등 우리가 흔히 서버라고 부르는 컴퓨터는 여러 사용자가 동시에 접속해 사용할 수 있으므로 다중 사용자용 운영체제가 이용되는 대표적인 예
작업 처리하는 방식
-
- 일괄처리 방식
- 처리해야할 여러 작업들을 모아 일정량이 쌓이면 일괄적으로 처리하고, 모든 작업이 완전히 종료된 후에 결과를 얻을 수 있다. 그러므로 사용자 입장에서는 응답시간이 길다는 단점이 있다.
- 시분할 방식
- 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식.유닉스 운영체제하의 서버 컴퓨터는 여러 사용자의 작업을 짧은 시간 단위로 번갈아가며 처리하게 된다. 그러므로 사용자들은 일괄처리 방식에 비해 짧은 응답시간을 갖게 된다. 평균적으로 사람들이 길다고 느끼는 시간에까지 이르지 않고 입력에 대한 응답을 얻을 수 있기 때문에 사용자 측에서는 컴퓨터를 자기 혼자 독점적으로 사용하는 것처럼 생각할 수 있다. 이와 같이 사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템을 대화형 시스템이라고 표현하며 시분할 방식의 대표적인 예이다.
- 현대의 범용 컴퓨터는 대부분 시분할 방식을 사용함.
- 실시간 운영체제
- 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에서 사용됨.제약의 중요성에 따라 다시 두 가지로 세분화 가능.
- 경성 실시간 시스템
- 주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 로켓, 원자로 제어 시스템 등을 말한다.
- 연성 실시간 시스템
- 멀티미디어 스트리밍 시스템과 같이 데이터가 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템.
- 경성 실시간 시스템
- ex) 원자로, 공장, 제어 시스템, 미사일 제어 시스템
4. 운영체제의 예
MS윈도우와 유닉스 예를 통해 간단히 살펴보도록 하자.
윈도우
- MS 윈도우는 미국의 컴퓨터 소프트웨어 기업인 마이크로소프트에서 이전에 개발한 MS-DOS와 윈도우 3.1 등을 한층 발전 시킨, 개인 용 컴퓨터를 위한 운영체제이다.
- MS윈도우마이스크로소프트사 초보자도 쉽게 하자! → 윈도우 개발
초기 윈도우
- 초기 윈도우는 그래픽 인터페이스와 마우스 기능을 지원 BUT 그 자체로 독립적인 운영체제 x, MS-DOS 위에서 수행된다는 점에서 여러가지 한계를 가지고 있었다. 또한 윈도우를 사용하면서도 DOS를 함께 사용해야 된다는 부가적인 어려움 ㅠㅠ
해결하자!
- DOS라는 운영체제 위에서 수행되는 프로그램이 아니라 그 자체가 하나의 온전한 운영체제가 되도록 제작한 것이 윈도우 95 ~~~ 윈도우 10
- 윈도우 xp부터는 인터페이스 측면에서 그래픽 환경과 아이콘 방식을 기본적으로 채택! 동일한 명령어라도 수행하는 방식을 여러 가지로 지원해 누구나 자기에게 편한 방법으로 다룰 수 있게 함.
MS윈도우 큰 특징
- 시스템에 새로운 하드웨어를 장작하면 운영체제가 자동으로 하드웨어를 감지하여 그에 맞게 설정됨
- 이 기능을 앤 플레이(plug and play)라고 한다
- 안정성이 떨어지지만, 사용이 편리한 여러가지 제공하여 초보자들도 쉽게 이용 가능 지금은 안전성 개선됨.
- 안정성이 높고 웹서버 등 다중 사용자용 운영체제로 사용되는 버전인 윈도우NT가 있음.
- 서버 환경을 지원해 웹서버, 전자우편, 파일서버, 데이터베이스 및 통신 기능을 손쉽게 관리할 수 있게 해주는 장점.
유닉스
- 유닉스유닉스는 프로그램 개발 환경을 위해 설계된 운영체제로서 이식성(portability)이 좋고, 운영체제 커널의 크기가 작으며, 소스 코드가 공개 되었다는 점 등으로 많은 연구와 함께 그 사용이 확대 되어 이제는 가장 널리 사용되는 운영체제 중 하나로 자리 잡고 있다.
- 1969년 벨 연구소에서 최초로 개발된 것으로 운영체제 분야에서는 주목할 만한 성공 사례 중하나임.
이식성이란?
- 소프트웨어의 이식성이란 해당 소프트웨어를 다른 기종의 기계로 옮기는 것이 얼마나 용이한가를 나타내는 지표로서, 유닉스는 이러한 이식성이 높은 최초의 운영체제라 할 수 있다.
초기의 유닉스
- 커널의 크기가 놀라울 정도로 작음
- 여러 가지 유틸리티들을 지원하기 때문에 프로그래밍 환경에는 이상적이라 할 수 있음.
- 대부분의 코드가 C언어로 작성됨.
- 코드를 보고 사람이 이해하기 쉬움.
현재의 유닉스는 여러 집단에서 개발된 다양한 종류가 있다. 최근에는 리눅스의 등장으로 대형 서버 뿐 아니라 개인용 컴퓨터에서도 유닉스를 널리 사용할 수 있다.
MS윈도우가 개인용 컴퓨터를 위한 운영체제로서 누구든지 손쉽게 사용할 수 있도록 하는 편리한 인터페이스와 각종 기능들을 특징으로 한다면, 유닉스는 오랜 전통을 지닌 운영체제로서 대형 컴퓨터 및 전문적인 목적의 컴퓨터에 사용되기에 적합하다.
오랜 전통이 말해주듯 안정성을 가장 큰 장점으로 하며, 컴퓨터를 어느 정도 전문적으로 다루는 사용자에게는 유닉스 또한 사용하기 편리하고 자신에게 적합한 환경을 스스로 꾸밀 수 있는 체계적인 운영체제라고 할 수 있다.
5. 운영체제의 자원 관리 기능
운영 체제의 가장 핵심적인 기능 → 자원을 효율적으로 관리하는 것
자원은 2가지로 나뉜다.
- 하드웨어 자원
- 소프트웨어 자원
하드웨어 자원
CPU와 메모리를 비롯해 주변장치 도는 입출력 장치라 불리는 장치들로 구성된다.
CPU는 통상적으로 컴퓨터 한 대에 하나가 장착되기 때문에 여러 프로세스들이 CPU를 효율적으로 나누어 사용할 수 있도록 관리되어야 한다. 메모리 역시 시스템 내에 한정된 용량만 존재하기 때문에 서로 다수의 프로세스들이 나누어 쓸 수 있도록 해야 한다. 입출력 장치도 운영체제의 관리 필요. CPU와 메모리는 전원이 꺼지면 처리 중이던 정보가 모두 지워지기 때문에 전원이 나가도 기억해야 하는 부분을 입출력 장치 중 한 종류인 보조기억장치에 파일 형태로 저장한다. 이때 이러한 파일들이 저장되는 방식 및 접근 권한 등에 대해서도 운영체제가 관리해주어야 함.
CPU 관리 방법
가장 기본적인 컴퓨터 구조에서도 프로세스는 여러 개가 동시에 수행될 수 있다. 그러므로 매 시점 어떠한 프로세스에 CPU를 할당해 작업을 처리할 것인지 결정하는 일이 필요!
CPU 스케줄링(CPU scheduling)
목표 : CPU를 가장 효울적으로 사용하면서도, 특정 프로세스가 불이익을 당하지 않도록 하는 것.
대표적인 CPU 스케줄링 기법 3가지
- 선입선출(First Come First Second)
- 라운드 로빈(Round Robin)
- 우선순위(priority)
선입선출 기법
→ CPU를 사용하기 위해 도착한 프로세스들 중 먼저 온 것을 먼저 처리해주는 방식.
== 우리가 일상생황에서 줄을 서는 것과 유사함.
- CPU를 필요로 하는 프로세스가 여럿 있을 때 CPU를 먼저 얻은 프로세스가 원하는 작업을 완료할 때까지 다른 프로세스들이 CPU를 사용하지 못 한다.
→ 효율 문제 없음 BUT 전체 시스템 입장에서는 비효율적인 결과를 초래할 가능성 있음.
장시간 CPU를 사용해야 하는 프로세스가 들어오면 이 친구 끝날 때까지 뒤에 있는 프로세스가 다 기다려야함..
이 단점을 보완하고자 나온 기법이 라운드 로빈 기법.
라운드 로빈 기법
→ CPU를 한 번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한한다.
긴 작업을 요하는 프로세스가 CPU를 할당 받더라도 정해진 시간이 지나면 CPU를 내어놓고 CPU 대기열의 제일 뒤에 가서 줄을 서야함.
그렇다면 한 번에 사용할 수 있는 할당시간을 얼마로 할 것인가?
→ 1회 할당시간은 밀리초 단위 사용 → 다수의 사용자가 동시에 접속할 때에도 각자 1초 이하의 응답시간을 보장 받을 수 있다.
우선순위
→ CPU 사용을 위해 대기 중인 프로세스들에 우선순위를 부여하고 우선순위가 높은 프로세스에 CPU를 먼저 할당한다.
핵심
: 시스템 냄의 프로세스 중에는 상대적으로 더 중요한 프로세스가 있을 수 있으므로 그런 프로세스의 우선순위를 높게 하여 CPU를 먼저 획들할 수 있게 한다는 점!!! 또한 지나치게 오래 기다리는 프로세스가 발생하지 않도록, 기다린 시간이 늘어날수록 우선순위를 점차 높여주는 방안도 활용됨.
메모리 관리 방법
메모리는 CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억장치이다. 프로그램이 CPU에서 실행되려면 해당 부분이 메모리에 올라가 있어야 하낟. 이때 한정된 메모리 공간에 여러 프로그램을 수용하려면 메모리에 대한 효율적인 관리 메커니즘 필요함. → 메모리 관리를 위해 운영체제는 메모리의 어느 부분이 어떤 프로그램에 의해 사용되고 있는지를 파악하여 이를 유지 하게 되는 이러한 정보는 주소(address)를 통해 관리됨.
운영체제 프로그램 메모리 필요 할당, 더 이상 필요하지 않으면 회수
운영체제는 전체 메모리 공간이 효율적으로 사용될 수 있도록 해야함. 또한 서로 다른 프로세스의 영역을 침법하지 않도록 보안을 유지하는 역할도 중요.
물리적 메모리를 관리하는 방식 3가지
- 고정분할(fixed partition) 방식
- 가변 분할(variable partition) 방식
- 가상 메모리(virtual memory) 방식
고정분할 방식
→ 물리적 메모리를 몇 개의 분할로 미리 나누어 관리함. 나뉜 각각의 분할에는 하나의 프로그램이 적재될 수 있음.
이 방식의 단점
: 융통성이 없음
메모리에 동시 적재되는 최대 프로그램의 수가 분할 개수로 한정되기 때문. 또한 분할의 크기보다 큰 프로그램 적재 불가능. → 메모리 효율적인 사용 측면에서 바람직 하지 않음.
분할이 고정적이기 때문에 분할의 크기 보다 작은 프로그램이 적재되는 경우 해당 분할 내에 남은 영역이 발생하게 된다. 이것을 내부조각(internal fragmentation)이라 함.
내부조각이란?
→ 해당 분할에 올라온 프로그램에 의해서도 사용되지 않고 다른 프로그램에도 할당될 수 없으므로 비효울적으로 낭비되는 공간.
가변분할 방식
→ 매 시점 프로그램의 크기에 맞게 메모리에 분할해서 사용하는 방식.
분할의 크기 때문에 큰 프로그램의 실행이 제한되는 문제는 발생하지 않는다. But 물리적 메모리의 크기보다 더 큰 프로그램의 실행은 여전히 불가능함.
분할의 크기와 개수가 동적으로 변하므로 기술적 관리 기법이 필요함.
이 기법을 사용하면 내부조각은 발생하지 않지만 외부조각이 발생할 수 있다.
외부조각이란?
→ 프로그램에 할당되지는 않았지만 그 크기가 작아 프로그램을 올리지 못하는 메모리 영역
이게 뭔소리인가 싶음
예를 들어 설명 ㄱㄱ
크기가 100인 프로그램 A 실행, 메모리에 100만큼의 영역을 할당받음 → 프로그램 A 실행되는 도중 크기가 50인 프로그램 B 실행 → A의 영역 바로 다음 메모리 공간 50 할당 받음. → A의 작업 완료 A의 영역에 크기 80인 프로그램 C 적재. → A의 크기는 100인데 80 크기를 가진 프로그램 C가 이전의 A영역 사용 → 20만큼의 빈 공간 생김 → 이제 크기가 40인 프로그램 D 실행 → 크기가 20인 공간 비어 있지만 프로그램 D가 빈 공간 20 사용 못함. → 크기 20 공간을 외부조각이라고 함.
이 공간은 비어있는 공간 이지만 그 크기가 작아 아직까지 프로그램에 할당되지 못한 공간임.
가상메모리 기법
→ 현대의 범용 컴퓨터 환경에서 가장 널리 상용되는 메모리 관리 기법이다.
물리적 메모리보다 더 큰 프로그램이 실행 되는 것을 지원함. → 실행될 수 있는 프로그램의 크기는 가상메모리의 크기에 의해 결정됨.
좀 더 자세히 보자.
모든 프로그램은 물리적 메모리와는 독립적으로 0번지부터 시작하는 자신만의 가상메모리 주소를 갖는다.
운영체제는 이 가상메모리의 주소를 물리적 메모리 주소로 매핑(mapping)하는 기술을 이용해 주소를 변환시킨 후 프로그램을 물리적 메모리에 올리게 된다. 가상 메모리 기법에서는 물리적 메모리의 크기와 상관없이, 사용할 수 있는 메모리의 크기가 충분히 크다고 가정하고 프로그램을 개발 가능.
ex)
물리적 메모리의 크기가 1기가바이트라 하더라도 2기가바이트 프로그램을 실행 가능.
원리를 보자
→ 프로그램의 전체 크기가 2기가바이트일지라도 전체가 항상 동시에 사용되는 것은 아님. 그러므로 현재 사용되고 있는 부분만 메모리에 올리고, 나머지는 하드디스크와 같은 보조기억장치에 저장해두었다가 필요할 때 적재하는 방식.
이때 사용되는 보조기억장치 영역을 스왑 영역(swap area)이라고 부름. 프로그램을 구성하는 가상 메모리 주소 공간은 페이지(page)라는 동이란 크기의 작은 단위로 나누어 물리적 메모리와 스왑 영역에 일부분씩 저장함.
이렇게 동일한 단위로 메모리를 나누는 기법을 페이징(paging)기법이라고 한다.
주변장치 및 입출력 장치
→ 인터럽트(interrupt)라는 메커니즘을 통해 관리가 이루어진다.
주변장치들은 CPU의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청함. → 이때 발생시키는 신호를 인터럽트라고 한다.
CPU는 CPU 스케줄링에 따라 주어진 작업을 수행하다가 인터럽트가 발생하면 하던 일을 잠시 멈추고 인터럽트에 의한 요청 서비스를 수행함.
ex) 사용자가 키보드의 글자를 입력하면 키보드는 CPU에 인터럽트를 발생시켜 사용자로부터 입력이 들어왔음을 알린다. 그러면 CPU는 하던일을 멈추고 인터럽트로 인해 처리해야 할 작업을 수행한다. 키보드에 의해 인터럽트가 발생한 경우라면 사용자의 입력 데이터를 해당 프로그램에 전달하는 절차를 수행함. 인터럽트 처리를 완료 후에 원래 하던 일을 계속 수행한다.
운영체제는 인터럽틀르 처리한 후 원래 수행하던 작업으로 돌아오기 위해 인터럽트 처리 직전에 수행 중이던 작업의 상태를 저장해둔다.
인터럽트가 발생했을 때에도 직전의 작업 상태를 잠시 저장해두고 인터럽트를 먼저 처리하는 것임.
인터럽트는 요청하는 장치와 발생 상황에 따라 다양한 종류가 있다. 운영체제는 인터럽트의 종류마다 서로 다른 인터럽트 처리루틴을 가지고 있음.
인터럽트 처리루틴이란?
→ 인터럽트가 발생했을 때 해주어야 할 작업을 정의한 프로그램 코드를 말함. 이것은 운영체제 커널 내에 존재하는 코드로 CPU 스케줄링, 메모리 관리루틴 등 다양한 기능을 위한 커널 코드의 일부분이라 할 수 있다. 인터럽트가 발생하면 운영체제는 해당하는 인터럽트 처리루틴을 찾아서 정의된 코드에 따라 일을 수행함.
주변장치
→ 주변장치들은 각 장치마다 그 장치에서 일어나는 업부를 관리하기 위한 일종의 작은 CPU를 가지고 있다. 컨트롤러(controleer)라 부른다. 컨트롤러는 해당 장치에 대한 업무를 처리하고, 메인 CPU에 인터럽트를 발생시켜 보고하는 역할을 한다.
ex) 사용자로부터 키보드에 입력이 들어오면 키보드 컨트롤러가 인터럽트를 발생시켜 CPU에 그 사실을 알려줌.
CPU는 현재 수행 중이던 작업의 상태를 저장하고, 인터럽트 요청을 처리학 위해 운영체제 내에 정의된 키보드 인터럽트 처리 루틴을 찾아감.
'OS > OS-42study' 카테고리의 다른 글
6. CPU 스케줄링 (0) | 2023.09.13 |
---|---|
5. 프로세스 관리 (0) | 2023.09.13 |
4. 프로그램의 구조와 실행 (0) | 2023.09.13 |
3. 컴퓨터 시스템의 동작 원리 (1) | 2023.05.09 |