본문 바로가기

프로그래밍/운영체제10

서비스(Service) vs 데몬(Daemon) 서비스(Service) 부팅 때 자동으로 실행되며 계속 백그라운드에서 실행되는 프로세스 메모리에 상주해 있다가 사용자 요청이 오면 응답하는 프로세스 서비스는 눈에 보이지 않지만 현재 시스템에서 동작 중인 프로세스이므로 백그라운드 프로세스의 일종이라고 할 수 있다. 서비스 == 데몬 데몬(Daemon)과 서비스(Service)는 둘 다 "부팅 시에 자동으로 켜지고 계속 백그라운드에서 실행되는 프로세스"를 의미한다. 유닉스/리눅스 계열에서는 데몬으로, 윈도우에서는 서비스라고 했었지만 요즘은 같은 의미로 사용 서비스(Service) 서비스(Service)란 단어는 "윈도우 운영체제"에서 주로 사용됐던 단어 "윈도우 OS와 함께 시작되어 계속 실행되는 백그라운드 프로세스"란 의미로 데몬과 거의 비슷 "데몬"과 .. 2024. 3. 25.
시스템 콜, 시스템 호출(System Call)이란? 시스템 콜, 시스템 호출(System Call)이란? 운영체제는 다양한 서비스를 수행하기 위해 하드웨어를 직접 관리한다. 반면 응용 프로그램은 운영체제가 제공하는 인터페이스를 통해서만 하드웨어와 통신할 수 있다. 운영체제가 제공하는 이러한 인터페이스를 '시스템 콜(System Call)'이라고 한다. 시스템 콜은 이러한 커널 영역의 기능을 사용자 모드가 사용 가능하게 한다. 즉, 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 수행할 수 있게 해 준다. (즉, 응용프로그램은 시스템 콜을 사용해서 원하는 기능을 수행할 수 있음) 보통 직접적으로 시스템 콜을 사용하기보다는 API(라이브러리 함수)를 통해 제어한다. 위의 그림처럼 운영체제는 메모리에 프로그램 적재, I/O 처리, 파일시스템 처리 등 여러 서.. 2024. 2. 5.
커널 오브젝트(Kernel Object)에 대해서 커널(kernel)이란 컴퓨터를 운영하는 데 있어서 중심이 되는 운영체제의 핵심 부분을 뜻한다. 일반적으로 '커널'이라는 용어와 '운영체제'라는 용어는 같은 의미로 사용되기 때문에 굳이 운영체제에서 커널이 차지하는 영역을 명확하게 구분할 필요는 없다. 커널 오브젝트 : 커널에서 관리하는 중요한 정보를 담아둔 데이터 블록 파일을 실제 생성하고 관리하는 주체는 운영체제이다. 운영체제는 관리를 위해 '접근 정보, 어디까지 읽었는지에 대한 정보'등을 필요로 하는데, 이러한 정보들을 담아둔 블록이 바로 커널 오브젝트다. 리소스를 생성하게 되면 그에 해당하는 커널 오브젝트가 생성된다. 각 커널 오브젝트는 리소스의 특성에 따라 가지는 정보가 다름 커널 오브젝트(Kernel Object)의 이해 프로세스를 생성하고(프.. 2024. 1. 24.
스레드(Thread)란 스레드 오늘날의 운영체제들은 프로세스를 효율적으로 사용하고, 작업의 유연성을 얻기 위해 멀티스레드를 지원한다. 스레드의 정의 프로세스가 생성되면 CPU 스케줄러는 프로세스가 해야 할 일을 CPU에 전달하고, 실제 작업은 CPU가 수행한다. 이때 CPU 스케줄러가 CPU에 전달하는 일 하나가 스레드이다. 그러므로 CPU가 처리하는 작업 단위는 프로세스로부터 전달받은 스레드인 것이다. 운영체제의 입장에서 작업 단위는 프로세스이고, CPU입장에서의 작업 단위는 스레드인 것이다. 따라서 프로세스 입장에서는 스레드를 다음과 같이 정의할 수 있다. 스레드 : 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위. 작업(job)의 크기 크기 순서로 나열하면 다음과 같다. Thread(operat.. 2023. 7. 31.
프로세스 제어 블록 (PCB, Process Control Block)란? 프로세스 제어 블록(PCB)이란? 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓은 곳으로, 프로세스의 상태 정보를 저장하는 구조체이다. 프로세스 상태 관리와 문맥교환(Context Switching)을 위해 필요하다. PCB는 프로세스 생성 시 만들어지며 주기억장치에 유지된다. 프로세스 제어 블록(PCB)에 포함되는 정보들 Process ID : 프로세스를 구분하는 ID Process state : 각 State 들의 상태를 저장한다. Program Counter : 다음 Instruction의 주소를 저장한다. CPU는 이 값을 참조해서 Process의 Instruction을 수행한다. Register : Accumulator, CPU Register, General Register 등을 포함한.. 2023. 7. 20.
프로그램의 실행 프로그램이 실행되고 있다 '프로그램이 실행되고 있다'는 것은 컴퓨터 시스템 차원에서 볼 때 크게 두 가지 중요한 의미를 가진다. 디스크에 존재하던 실행파일(.exe)이 메모리에 적재(load)된다는 의미 프로그램이 CPU를 할당받고 명령을 수행하고 있는 상태 일단 우리가 알고 있는 작동은 CPU는 디스크에 존재하는 실행파일이 메모리에 올라가면 프로그램은 CPU를 할당받고 명령을 수행한다. 하지만 여러 프로그램이 짧은 시간 단위로 CPU를 나눠 쓰고, 이들 프로그램이 메모리에 동시에 적재되어 있을 수 있으므로 여러 프로그램이 동시에 실행된다는 말을 보편적으로 사용하는 것이다. 실행파일이 메모리에 적재될 때 실행파일 전체가 메모리에 한꺼번에 올라가기 보다는 일부분만 메모리에 올라가고 나머지는 디스크의 특정 .. 2023. 7. 20.