분류 전체보기

운영체제

[운영체제] CPU 스케줄링 - 다중 큐

CPU 스케줄링 - 다중 큐 방식  프로세스가 생성되면 준비상태로 전환되고 준비상태에서 CPU를 기다리고 있는 프로세스들은 CPU 스케줄러에 의해 실행상태로 전환된다.실행상태에 있는 프로세스는 CPU 할당시간이 다 되었다면,  다시 준비상태로 전환되고 i/o 요청이 있다면 대기상태로 작업이 끝났다면 완료상태로 전환된다.여기서 프로세스가 대기하고 있는 "준비상태"와 "대기상태"는 Queue로 관리된다.   준비상태 프로세스프로세스가 실행상태에서 준비상태로 돌아갈 때,   운영체제는 해당 프로세스의 우선순위를 보고 그에 맞는 준비 큐에 넣는다.  CPU 스케줄러는 "준비상태의 다중큐" 에 들어있는 프로세스들  중에 적당한 프로세스를 선택해서 실행상태로 전환시킨다.   대기상태 프로세스 프로세스가 실행상태에서..

운영체제

[운영체제] Thread (쓰레드)

Thread (스레드)가 나오게 된 배경 운영체제가 작업을 처리하는 단위는 프로세스이다.사용자가 운영체제에게 작업을 요구하면 그만큼 프로세스의 수가 늘어난다.프로세스를 생성하면 PCB가 생성되고  메모리에 코드, 데이터, 스택, 힙 영역을 만들어줘야 한다.프로세스의 수가 많아지면, 프로세스의 수 만큼  PCB, 코드, 데이터, 스택, 힙 영역도 만들어줘야 하기 때문에, 메모리의 공간을 너무 많이 사용하게 된다. 예를들어 웹 브라우저를 실행시키면 프로세스 1개가 생성된다.여기서 웹브라우저의 탭을 1개 더 추가하면,  기존 프로세스를 복사해서 총 2개의 프로세스가 존재하게 된다.만약 탭을 10개를 추가하게 된다면,  프로세스의 복사가 10번 일어나고 PCB, 코드, 데이터, 스택, 힙 영역 도 10개가 생성..

운영체제

[운영체제] 프로세스의 생성/종료

프로세스의 생성과정 컴퓨터가 부팅될 때, 초기 여러 과정을 거치고 커널이 메모리에 로드되고 실행되면,  커널은 하드웨어와 시스템 리소스를 초기화하고 드라이버를 로드한다. 커널 초기화 후, 커널은 시스템의 첫 번째 프로세스인 init을 시작한다. 이 프로세스는 프로세스 ID (PID) 1을 가지며, 모든 다른 사용자 프로세스의 조상이 된다. 일반적으로 프로세스가 생성될 때는 다음과 같은 방법으로 생성된다.특정 프로세스를 실행하면 운영체제는 해당 프로그램의 코드영역, 데이터영역을 로드하고빈 Stack과 빈 Heap 을 만들어 공간을 확보해 준다.그다음 해당 프로세스를 관리하기 위한 PCB를 만들어서 값을 초기화해준다.   특정 프로그램을 실행할 때, 새로운 프로세스를 직접 생성하지 않고 1번 프로세스를 복사..

운영체제

[운영체제] Context Switching (문맥교환)

Context Switching (문맥교환) 이란? Context Switching(문맥교환)은 프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해 실행 중인 프로세스의 상태를 저장하고 다른 프로세스의 상태값으로 교체하는 작업이다.콘텍스트 스위칭이 일어날 때 PCB의 내용이 변경된다.실행 중인 프로세스의 작업 내용을 PCB에 저장하고  실행될 기존 프로세스의 PCB의 내용대로 CPU가 다시 세팅된다.Context Switching 이 일어날 때 PCB에 변경하는 값들로는 프로세스 상태, 다음 실행할 명령어의 주소를 담고 있는 프로그램 카운터,각종 레지스터 값 등이 존재한다.     Context Switching (문맥교환) 과정 프로세스 두 개가 문맥교환하는 상황을 살펴보자.  프로세스 A 가 실행..

운영체제

[운영체제] 프로세스 상태 (Process Status)

프로세스 상태(Process Status) 란? 사용자가 프로그램을 실행시키면 메모리에 올라가면서 프로세스가 생성된다.오늘날의 운영체제에는 동시에 수많은 프로세스가 실행된다.작업관리자를 확인해보면 수많은 프로세스가 실행 중인 것을 확인할 수 있다.시분할 시스템을 사용하는 운영체제는 여러개의 프로세스를 돌아가면서 실행한다.CPU 가 여러개의 프로세스를 동시에 실행한다는 의미가 아니라  한 순간에는 하나의 프로세스 밖에 처리하지 못한다는 것이다.다만 속도가 매우 빨라서 사람이 보기에는 동시에 처리되는 것처럼 보인다. PCB(Process Control Block) 내부에는 프로세스의 상태를 가리키는 정보가 존재한다. 프로세스는 시분할 처리를 위한 다섯 가지 상태를 가지고 있다. 바로 생성,준비,실행,대기,완..

운영체제

[운영체제] PCB(Process Control Block)

PCB(Process Control Block) 란? 프로그램이 메모리에 올라가서 실행 중인 상태를 "프로세스(Process)"라고 말한다.운영체제는 여러개의 프로세스를 전부 다 관리하고 공평하게 실행시켜야 한다. 프로세스가 만들어지면 운영체제는 해당 프로세스의 정보를 가지고 있는  PCB(Process Control Block)를 만들고 저장한다. PCB는 운영 시스템이 프로세스의 상태를 추적하고, 필요할 때 적절한 자원을 할당하며,  프로세스 간 전환(context switching)을 효율적으로 수행할 수 있도록 돕는다. PCB 들은 연결리스트(Linked List)라는 자료구조로 저장이 된다.운영체제는 프로세스가 종료되면 연결리스트에서 해당 프로세스의 PCB를 제거한다.   PCB의 구조 PCB ..

운영체제

[운영체제] 프로그램과 프로세스

프로그램(Program) 이란? 프로그램은 하드디스크와 같은 저장장치에 저장된 명령문의 집합체를 뜻한다.애플리케이션이나 앱이라고도 불리고 windows 운영체제에서는. exe 확장자 파일로 존재한다.프로그램은 컴퓨터 관점에서 하드디스크 즉, 저장 장치만 사용하는 수동적인 존재이다.   프로세스(Process) 란?실행중인 프로그램이라고 간단하게 표현할 수 있다.실행 중인 프로그램이란 하드디스크에 저장된 프로그램이 메모리에 올라갔을 때 실행 중인 프로그램, 즉 프로세스라고 불린다.프로세스는 메모리도 사용하고 운영체제의 CPU 스케줄링 알고리즘에 따라서 CPU 도 사용하고  필요에 따라 입출력을 하기 때문에 능동적인 존재라고 말할 수 있다.   프로세스의 구조  프로세스는 Code 영역, Data 영역, S..

운영체제

[운영체제] Interrupt (인터럽트)

Polling (폴링) cpu 가 입출력 장치에 데이터를 읽거나 쓰려고 하는 상황을 생각해 보자.cpu는 입출력 작업이 들어오면 입출력 관리자에게 입출력 명령을 내린다.cpu 관점에서는 입출력 명령이 언제 완료될지 알 수 없기 때문에,  주기적으로 계속 확인해줘야 한다.이러한 방식을 폴링 (Polling) 방식이라고 한다.폴링방식의 단점은 주기적으로 CPU가 확인해줘야 하니까 성능이 좋지 않다는 것이다.인터럽트는 폴링 방식의 단점을 해결한 방식이다.    인터럽트 (interrupt) 인터럽트는 컴퓨터 아키텍처에서 매우 중요한 개념으로, 실행 중인 프로그램 외부 또는 내부에서 발생하는 이벤트에 대해  CPU가 반응하여 처리를 수행하도록 하는 메커니즘을 말한다. 인터럽트를 통해 컴퓨터 시스템은 다양한 작업..

운영체제

[운영체제] Hardware 의 구조

폰 노이만 구조 현대의 대부분 컴퓨터들은 프로그램 내장방식의 "폰 노이만 구조"를 채택하고 있다.폰 노이만 구조는 "폰 노이만" 이라는 수학자가 고안해서 만든 것이라 폰 노이만 구조라고 불린다.고전 컴퓨터인 에니악(Eniac)에서는 하드웨어로 프로그램을 만들었기 때문에  프로그램 로직이 달라질때마다 매번 스위치와 배선을 다시 조정해야 했다.폰 노이만은 이를 해결하기 위해서 CPU와 메모리를 두고  둘 사이는 버스(데이터를 전달하는 통로)로 연결하는 방식으로 컴퓨터를 새로 개발했다.폰 노이만 구조를 채택한 컴퓨터에서 프로그램은 메모리에 올려져서 실행되는데, 프로그램을 메모리에 내장했다고 해서 프로그램 내장방식이라고 부른다.메모리에 올라간 프로그램들은 명령에 따라 처리되고, 에니악에서 프로그래밍 할 때처럼 ..

운영체제

[운영체제] 운영체제의 구조

운영체제란? 운영체제(Operating System, OS)는 컴퓨터 하드웨어와 소프트웨어 리소스를 관리하고,  사용자와 컴퓨터 하드웨어 간의 인터페이스 역할을 하는 중요한 시스템 소프트웨어이다.  운영체제는 기본적으로 시스템의 모든 활동을 조정하고,  자원을 효율적으로 할당하여 다양한 응용 프로그램과  사용자 작업이 원활하게 실행될 수 있도록 지원한다.    커널이란? 운영체제의 핵심은 커널인데, 커널은 프로세스와 메모리, 저장장치를 관리하는 핵심적인 기능을 담당한다.   1) 사용자가 커널에 접근하는 방법 사용자는 운영체제의 커널에 직접 접근할 수 없고, 오직 인터페이스를 통해서 접근이 가능하다. 인터페이스는 크게 GUI 방식과 CLI 방식으로 나눌 수 있다. 그림이냐 텍스트냐의 차이만 있을 뿐 사용..

ssh9308
'분류 전체보기' 카테고리의 글 목록 (2 Page)