10-1 프로세스 개요 프로세스란? 실행 중인 프로그램 ‘프로세스를 생성한다’는 것은? 보조기억장치 → 메모리 → 실행 ex. hwp.exe 파일은 프로세스가 아님 → hwp.exe 프로그램을 더블클릭해 실행하면 프로세스가 되는 것 포그라운드 프로세스 vs 백그라운드 프로세스 📌 포그라운드 프로세스(foreground process)란? 사용자와 직접 상호 작용하는 프로세스 📌 백그라운드 프로세스(background process)란? 사용자와 직접 상호 작용하지 않는 프로세스 📌 데몬 프로세스(demon process) 사용자와의 상호작용 없이 정해진 일만 수행하는 백그라운드 프로세스 윈도우 운영체제에서는 서비스(service)라고 부름 PCB(Process Control Block)란? 프로세스와 관..
08-1 장치 컨트롤러와 장치 드라이버 ❓ 입출력 장치가 컴퓨터와 연결될 때 발생할 수 있는 어려움에는 어떤 것들이 있을까? 입출력 장치는 종류가 너무 다양하기 때문에 정보를 주고받는 방식을 규격화하기가 어려움 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮기 때문에 서로 통신을 하기가 어려움 💡 이러한 문제들을 해결하기 위해 등장한 것이 바로 **장치 컨트롤러** 장치 컨트롤러 : 컴퓨터 내부와 입출력 장치를 연결하는 하드웨어 장치 컨트롤러의 역할 CPU와 입출력장치 간의 통신 중개 오류 검출 데이터 버퍼링 📌 버퍼링 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼(buffer)라는 임시 저장 공간에 저장해 전송률을 비슷하게 맞추는 방법 💡 장치 컨트롤..
프로세스란? 프로그램이 실행 상태에 있는 것을 말합니다. 운영체제의 기능 중에 프로세스 관리 기능이 있었죠. 그러니까 프로세스 관리 기능은 프로그램을 실행시키고, 실행을 제어하는 모든 일을 말하는 것입니다. 프로세스가 정확히 무엇인지 예를 들어서 살펴보겠습니다. 중요한 날들을 기록해놓은 days.txt라는 텍스트 파일이 있고, 한글 파일(hwp.exe)이 있다고 할 때, days.txt와 한글 파일은 프로세스일까요? -> 둘 다 아닙니다. 텍스트 파일은 단순히 내용을 저장한 파일일 뿐이고, 실행할 수 있는 형태가 아니므로 프로그램이 아닙니다. 한글 파일(hwp.exe)는 실행시킬 수 있는 프로그램인 것은 맞지만, 아직 실행을 시키지 않았기 때문에 그냥 실행가능한 프로그램이 됩니다. 프로세스의 생성 프로세..
운영체제의 소프트웨어 구조(architecture)에 대해 알아보도록 하겠습니다. 이전 글에서 커널은 운영체제의 핵심 기능을 가지고 있는 부분이라고 했었습니다. 따라서 커널의 구조에 대해서 알아보도록 할 건데요. 커널의 구조로는 크게 모노리식 커널(Monolithic-Kernel) 구조, 마이크로 커널(Micro-Kernel) 구조 이렇게 두 가지가 있습니다. 모노리식 커널(Monolithic Kernel) 구조 모노리식 커널 구조란? 커널의 기능들이 커널 내부에 한 덩어리로 구현되어 있는 구조입니다. 위 그림은 모노리식 커널 구조를 보여줍니다. 모노리식은 단일체라는 의미입니다. 즉, 모노리식 커널이라는 것은 커널 소프트웨어가 한 덩어리로 모여있다는 뜻이죠. 그림에서도 확인할 수 있듯이 모노리식 커널에서..
운영체제는 다음과 같은 기능들로 구성되어 있습니다. 1. 프로세스 관리 -> 프로그램을 실행하는 데 관련된 기능(프로세스 생성, 프로세스 실행, 실행 제어 등) 2. 메인 메모리 관리 -> 메모리 공간을 프로그램에게 할당하고 회수하는 기능 3. 파일 관리 -> 파일을 보조 기억 장치에 저장하고, 보조 기억 장치에 저장된 파일 시스템을 운영하는 기능 4. 입/출력 시스템 관리 -> 컴퓨터 시스템이 입/출력을 할 때 제어하는 기능 5. 보조 기억 장치 관리 -> 하드디스크와 같은 보조 기억 장치의 공간을 할당하고 회수하는 기능 6. 보안 관리 -> 컴퓨터 내에서 여러 사용자가 함께 사용할 경우, 각 사용자들의 정보를 보호하는 기능 7. 네트워킹(Networking) -> 다른 컴퓨터(서버 등)와의 통신에 관..
Timesharing이란? Timesharing 시스템은 Multi Programming의 개념을 확장한 것입니다. Multi Programming은 한 프로그램을 실행할 때 그 프로그램이 더 이상 실행하지 못하는 즉, CPU를 사용하지 못하는 상황이 될 때까지 계속 CPU를 사용합니다. 그런데 이런 방식은 비교적 짧은 시간만 CPU를 사용하면 되는 프로그램에게는 비효율적인 결과를 가져다주게 됩니다. 만약, 프로그램 C는 1분만 CPU를 사용하면 되는데 프로그램 A는 10분, B는 5분을 사용해야 한다고 하면 프로그램 C는 단 1분을 실행하기 위해 15분을 기다려야 하기 때문에 C의 입장에서는 매우 비효율적인 시스템이 되는 것이죠. Multi Programming의 이러한 문제점을 개선하기 위해 나온 것..
Multi Programming vs Multi Processing Multi Programming과 Multi Processing은 다른 개념입니다. 이전 글에서 살펴봤듯이 Multi Programming은 CPU 한 개가 여러 개의 프로그램을 번갈아 실행했었습니다. CPU가 한 개이기 때문에 프로그램들을 번갈아 실행할 수 밖에 없는 것이죠. 따라서 Multi Programming에서는 두 개 이상의 프로그램이 동시에 실행될 수 없습니다. 하지만, Multi Processing은 프로세서가 여러 개 있어 여러 개의 프로그램이 동시에 실행될 수 있습니다. 그림에서 위가 Multi Programming을 나타낸 것이고, 아래가 Multi Processing을 나타낸 것입니다. 검은색으로 표시된 부분이 프로..
SMP(Symmetric Multi Processing)란? 여러 개의 프로세서(CPU)가 같은 성격의 일을 하는 Multi Processing입니다. 예를 들어, 여러 개의 프로세서가 모두 사용자 프로그램을 실행하는 일을 한다면 SMP라고 부릅니다. 이에 반대되는 개념으로는 ASMP(Asymmetric Multi Processing)가 있습니다. 프로세서가 다른 프로세서들과는 다르게 자신만은 전담 역할이 있는 경우에 ASMP라고 부릅니다. 이제 프로그램이 어떤 식으로 실행되는지 살펴보겠습니다. 위 그림에서 컴퓨터는 이미 부팅이 되어 운영체제가 메인 메모리 안에 들어와 있다고 하겠습니다. 여러 개의 프로세서가 있지만, 이 프로세서들이 알아서 프로그램을 실행하는 것은 아닙니다. 운영체제가 프로그램을 실행하..