CS(38)
-
부모 프로세스는 자식 프로세스를 어떻게 만들어내고, 자식프로세스는 어떻게 자신만의 코드를 실행할까?
프로세스 상태 아래의 프로세스 상태들은 PCB에 저장된다. 생성 상태(created) 이제 막 메모리에 적재되어 PCB를 할당받은 상태 준비 상태(ready) 당장이라도 CPU를 할당받아 실행할 수 있지만, 자신의 차례가 아니기에 기다리는 상태 자신의 차례가 된다면 실행상태(=디스패치)로 변함 실행 상태(running) cpu를 할당받아 실행중인 상태 할당된 시간 모두 사용시 (=즉, 타이머 인터럽트 발생 시), 준비상태로 돌아간다. 프로세스를 실행 도중 입출력장치를 사용하면, 입출력작업이 끝날 때까지 대기 상태로 대기 상태(blocked) 프로세스가 실행 도중 입출력장치를 사용하는 경우 입출력 작업은 CPU에 비해 느리기에, 이 경우 대기상태로 접어듬 입출력 작업이 끝나면 (=입출력 완료 인터럽트를 받..
2024.01.11 -
프로세스의 메모리 영역 중 사용자 영역은 어떻게 되어있을까?
프로세스의 메모리 영역 사용자영역과 커널영역 사용자 영역 코드영역(=텍스트영역) 실행할 수 있는 코드, 기계어로 이루어진 명령어가 저장된다. 데이터가 아닌, CPU가 실행할 명령어가 담기기에 쓰기가 금지된 Read-Only영역이다. 데이터영역 잠깐 썼다가 없앨 데이터가 아닌 프로그램이 실행되는 동안 유지할 데이터가 저장된다. ex) 전역변수 코드영역과 데이터 영역은 정적할당영역에 속한다. 힙 영역 프로그래머가 직접 할당할 수 있는 저장공간 낮은 주소 -> 높은주소로 할당된다. 스택 영역 데이터가 일시적으로 저장되는 공간 잠깐 쓰다가 말 값들이 저장되는 공간으로 ex) 매개변수, 지역변수 높은 주소 -> 낮은 주소로 할당된다. 힙영역과 스택영역은 동적할당영역에 속한다.
2024.01.11 -
PCB와 Context-Switch
프로세스란? 프로세스 = 실행중인 프로그램 프로세스들은 번갈아가며 한정된 시간만큼 CPU를 이용한다. 타이머 인터럽트가 발생하면 차례를 양보한다. 프로세스 종류 포그라운드 프로세스 사용자가 볼 수 있는 공간에서 실행되는 프로세스(ex:메모장) 백그라운드 프로세스 사용자가 볼 수 없는 공간에서 실행되는 프로세스 사용자와 직접 상호작용이 가능한 백그라운드 프로세스 데몬, 서비스 사용자와 상호작용하지 않고 그저 묵묵히 일만 수행하는 프로세스 PCB란? 프로세스 관련 정보를 저장하는 자료구조로, 마치 옷에 달려있는 태그라고 생각하면 된다. 프로세스 생성 시 PCB는 커널 영역에 생성이 되며, 종료시 폐기된다. 운영체제는 커널영역에 적재된 PCB를 보고 프로세스를 관리한다. PCB에 담기는 정보 프로세스 ID(P..
2024.01.11 -
시스템 콜, 인터럽트? 커널모드, 유저모드?
시스템 콜 응용프로그램이 자원에 접근하려면 운영체젱 도움을 요청해야함(=운영체제의 코드를 실행해야함) 자원에 접근할 수 있는지 없는지는 이중모드(dual mode)로 파악할 수 있다. 시스템 콜을 하면, 커널 모드로 전환이 됨. 즉, 시스템 콜은 일종의 소프트웨어 인터럽트로, 운영체제의 서비스를 받기위해 커널모드로 전환하는 것을 말한다. dual mode Dual-Mode는 운영체제를 보호하기 위한 기법으로, 사용자와 운영체제가 시스템자원을 공유하는데, 사용자에게 제한을 두지 않으면 메모리 내의 운영체제 자원을 망가뜨릴 위험이 생기게 되어 운영체제를 보호하기 위한 장치가 필요하게 되는데 이를 dual mode라고 한다. dual mode는 사용자 모드와 커널 모드로 구성된다. 사용자 모드 : 사용자를 위..
2024.01.11 -
커널
자동차의 엔진, 사람의 심장처럼, 운영체제의 '핵심 서비스'를 담당하는 부분 컴퓨터가 부팅하는 순간, 커널 코드가 메모리에 올라가고, 다른 프로그램과 다르게 항상 메모리에 상주한다. 컴퓨터 시스템 구조 커널의 3가지 특성 자원을 보호하는 보안성 수많은 하드웨어가 접근가능하도록 하는 추상화 자원관리를 위한 스케줄링 1. 보안성 커널은 사용자나 응용프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단한다. 따라서 사용자나 응용프로그램이 자원을 이용하기 위해서는 System Call이라는 인터페이스를 이용하여 접근해야한다. System Call은 커널이 제공하는 시스템 관련 서비스를 모아넣은 것으로, 함수 형태로 제공한다. 2. 추상화 응용프로그램과 커널의 인터페이스가 System Ca..
2024.01.11 -
운영체제의 분류
동시 작업을 지원하는지의 여부에 따른 분류 동시 작업을 지원하지 않는 단일 작업(single tasking) 운영체제 한번에 프로그램 한 개만 실행 가능, ex) DOS 동시 작업을 지원하는 다중 작업(multi tasking) 운영체제 동시 작업 = 하나의 프로그램이 끝나기 전에 다른 프로그램을 실행시키는 것이 가능 즉, 한번에 여러 프로그램 실행 가능한 것을 의미한다. 최근의 운영체제는 대부분 다중 작업(multi tasking)을 지원한다. cpu작업시간을 조금씩 나누어 쓰는 것을 시분할 시스템(time sharing system)이라고 한다. 여러 프로그램이 조금씩 메모리 공간을 보유하며 동시에 메모리에 올라가 있는 것을 다중 프로그래밍 시스템(multi-programming system)이라고도..
2024.01.11