스케줄링? 하나의 관리자로 프로세스들의 여러 상황을 고려하여 cpu와 시스템 자원을 어떻게 배정할 지 결정하는 역할을 함 - 고수준 스케줄링 (가장 큰 틀에서 이루어지는 스케줄링) 어떤 작업요청이 오면 스케줄러가 시스템의 상황을 고려하여 작업을 승인할지, 거부할지 결정함(승인 스케줄링 이라고도 함) - 중간수준 스케줄링 전체 시스템의 활성화된 프로세스 수를 조절하여 과부화를 막음 - 저수준 스케줄링 어떤 프로세스에 CPU를 할당하고 어떤 프로세스를 대기 상태로 보낼지 등을 결정함 아주 짧은 시간에 일어나기 때문에 단기 스케줄링이라고도 함 스케줄링의 목적 근본적으로 이런 스케줄링을 왜 할까? 모든 프로세스가 공평하게 작업하도록 하기 위해서이다. 엄청나게 오래 걸리는 프로세스만을 처리하기 위해 상대적으로 짧..
Computer Science/Operating System
1. CPU의 구성에 대해 설명하시오 - CPU는 명령어를 해석하여 실행하는 장치이며 핵심 요소라 볼 수 있다. 산술논리 연산장치, 제어장치, 레지스터로 구성되며 이것들이 협업하여 작업을 처리한다. 1) 산술논리 연산장치 데이터를 연산하는 장치로 덧셈, 뺄셈, 곱셈, 나눗셈과 같은 산술연산, AND, OR과 같은 연산 수행 2) 제어장치 작업을 지시하는 부분 3) 레지스터 데이터를 임시로 보관하는 곳 -> 왜? 임시로 보관해야 할까? -> 연산을 하기 위해 필요한 데이터를 CPU로 가져와 임시로 보관해야 함 (저장되어 있는 값을 CPU로 가져와서 계산해야 하는데 계산할 때 둘 곳이라고 생각!) 2. 폰노이만 구조의 가장 중요한 특징을 설명하시오 CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있..
Code (코드영역) 개발자가 작성한 모든 코드가 기계어(0101…)로 변환되어 올라가 있는 공간 컴파일 타임에 결정 (코드영역의 크기, 코드가 기계어로 변환) Read-Only로 중간 코드를 바꿀 수 없음 텍스트 영역이라고도 함 프로그램이 시작하고 종료될 때 까지 메모리에 남아있음 CPU는 코드 영역에 저장된 명령어를하나씩 가져가서 처리함 Data (데이터 영역) 프로그램이 종료될 때까지 지워지지 않을 데이터 저장 (전역변수, static변수 등이 저장되어 있는 공간) 컴파일 타임에 결정 코드영역과 마찬가지로 프로그램이 시작하고 종료될 때 까지 메모리에 남아있음 Heap (힙 영역) 런타임 시점에 힙이 현재 사용하고 있는 크기가 결정됨 메모리 할당을 사용하지 않은 영역을 찾아 할당하는 방식(동적할당)이..
유닉스의 구조 1. 커널 (kernel) : 메모리에 상주하는 부분 작은 의미의 운영체제라고도 함. 2. 시스템 호출(system call) : 응용프로그램에서 운영체제에게 어떠한 기능을 수행해 달라는 하나의 수단 응용 프로그램이 커널의 기능을 사용할 수 있도록 한다. 3. 쉘 (shell) : 커널과 사용자 간의 다리역할 명령을 받아 해석하고, 프로그램을 실행시킨다. 쉘의 종류 1.Bourne shell : 최초의 셸, 가장 기본적인 쉘이다. 2. Bourne-again shell : 리눅스에서 가장 많이 사용하는 쉘로 C쉘과 콘 쉘의 장점을 결합하여 작성되었다. 3. C shell : C언어 기반으로 만들어졌다. 4. Korn shell : 본 쉘을 확장한 쉘로 본 쉘의 명령어를 모두 인식하며 유닉스..