CS
-
OS - 다중모드 운용과 타이머CS 2024. 3. 12. 00:47
운영체제와 사용자는 컴퓨터 시스템 내 하드웨어와 소프트웨어 자원을 공유하기 때문에 운영체제 혹은 사용자로부터의 잘못된 명령수행이 일어나지 않도록 보장해야 한다. 따라서 대부분의 컴퓨터 시스템에는 사용자 모드와 커널 모드로 최소한 두 개의 모드로 나누어진다. 이렇게 모드를 나누는 비트를 모드비트 라고 한다. 부팅과정을 예시로 설명하자면 아래와 같다. 처음 부팅시 부트스트랩에 의해 부트로더가 실행되기 위해서 커널모드에서 시작한다. 부트로더가 정상적으로 운영체제를 메모리위에 올려 실행되고 그 이후 사용자모드로 전환된다. 이 사용자가 응용프로그램들을 실행하게 되고, 그러다가 인터럽트 또는 트랩이 발생하게 되면 다시 커널모드로 전환하여 인터럽트를 처리하고 난 후 모드 비트를 바꾸어 사용자모드로 전환한다. 트랩(t..
-
OS - 멀티 프로그래밍과 멀티태스킹CS 2024. 3. 11. 23:51
우리가 컴퓨터의 전원을 키면 젤 먼저 작동하는 것은 부트스트랩과 같은 초기 프로그램이다. 부트스트랩은 컴퓨터 내 하드웨어를 사용가능한 상태로 초기화 하고, 운영체제를 실행시키기 위해 부트로더를 실행시켜 메모리 위에 운영체제를 올린다. 이렇게 운영체제가 메모리위에서 작동하게 되면 비로소 사용자와 시스템에 서비스를 제공할 수 있게 된다. 여기서 몇몇 서비스들은 운영체제가 실행되는 동안에 함께 실행되기 위해 부팅 시 메모리에 load되는데, 이를 시스템 데몬이 이라고 한다. 여기서 데몬이란 백그라운드에서 실행되는 시스템 서비스를 말한다. 데몬은 사용자와의 상호작용을 하지 않는다. 멀티 프로그래밍 운영체제에서 가장 중요한 점은 CPU가 쉬지 않게 효율적으로 프로그램을 관리하는 것이다. 만약 CPU가 하나의 프로..
-
OS - 멀티 프로세서CS 2024. 3. 10. 23:51
컴퓨터 시스템은 사용중인 프로세서의 수에 다라 분류 가능한 다양한 방식이 존재한다. 본 포스팅에서는 Multi-Processor에 대해 공부한다. 읽기 앞서 Process 와 Processor 그리고 CPU 등의 용어 정리를 간단하게 정리한다. CPU : 명령을 처리하는 하드웨어 Processor : 하나 이상의 CPU를 포함하는 물리적인 칩 Process : 메인 메모리위에 load 되어 실행중인 프로그램 인스턴스를 의미 multi-core : 동일한 CPU에 여러개의 컴퓨팅 코어 multi-processor : 여러 프로세서를 포함하는 시스템 즉, CPU는 하나 혹은 그 이상의 코어를 포함하고 있는 하드웨어이고 프로세서는 그러한 CPU를 의미하며 멀티 프로세서는 여러 프로세스 즉, 하나의 시스템이 여..
-
OS - 메인 메모리와 입출력 장치CS 2024. 3. 10. 23:01
저장장치의 구조 - 메인 메모리 CPU는 프로그램을 실행하기 위해선 먼저 해당 프로그램을 “메모리” 위에 올려놔야 한다. 이럴 때 흔히 얘기하는 “메모리”는 메인 메모리(RAM)을 뜻한다. 메모리는 바이트 형태의 배열을 띄고 있으며, 각 바이트는 그 자신의 주소를 갖고 있다. 이러한 메모리에 대한 명시적인 상호 작용은 크게 load 와 store로 나누어져 있다. 먼저 load는 메모리 위의 바이트들을 한 바이트씩 혹은 1 word 씩 CPU내부 레지스터로 옮기는 작업을 의미한다. store는 위의 반대로 레지스터에서 메모리로 옮기는 작업을 의미한다. 이렇게 메모리에 대한 명시적인 상호작용 외에 프로그램 카운터에 저장된 다음 명령에 대한 시작주소를 자동으로 load한다. 여기서 프로그램 카운터란 CPU ..
-
OS - OS가 할일, 컴퓨터 시스템구성CS 2024. 3. 5. 00:38
운영체제가 할 일 전체 컴퓨터 시스템은 크게 4가지로 나뉜다. 하드웨어 운영체제 응용프로그램 사용자 여기서 하드웨어는 주로 CPU, 입출력 장치(모니터, 키보드 등) 계산용 자원을 제공하는 매개체 응용프로그램은 사용자의 문제를 해결하기 위해 위의 자원을 사용한다. 그럼 운영체제는? 운영체제는 다양한 응용프로그램간의 하드웨어 사용을 제어하는 역할을 수행한다. 시스템 관점에서의 운영체제 컴퓨터의 입장에서 운영체제는 가장 하드웨어와 밀접한 관계를 가진 프로그램이다. 이러한 운영체제는 다양한 하드웨어 자원에 대한 관리를 수행한다. 그런데 다양한 응용프로그램들을 사용하게 되면서, 이들 하드웨어 자원에 대한 요청이 아주 많아 질 때가 있다. 운영체제는 자원 관리자로서 효율적으로 어느요청에 어떤 자원을 할당할지를 선..