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