분류 전체보기380 [운영체제 정리] 7.멀티레벨 큐 멀티레벨 큐 레디큐를 여러개로 분한다. cpu를 기다리는 여러 큐가 존재한다 위로 갈수록 우선순위가 높다. 준비 큐를 여러개로 분할해 관리하는 스케줄링 기법을 말한다. 즉, 프로세스들이 cpu를 기다리기 위해 한줄로 서는 것이 아니라 여러줄로 서는 것을 말한다. 멀티레벨큐는 일반적으로 성격이 다른 프로세스들을 별도로 관리하고 프로세스의 성격에 맞는 스케줄링을 적용하기 위해 별도의 큐를 두게 된다. 여러개의큐 포그라운드 큐: 사용자와 소통 중심 백그라운드 큐: 배치 프로그램 큐 자체에 대한 스케쥴링 - 고정 우선순위 방식 고정적인 우선순위를 부여해 우선 순위가 높은 큐를 먼저 서비스 하고 우선순위가 낮은 큐는 우선순위가 높은 큐가 비었을때 서비스하게 된다.즉, 전위 큐와 후위큐를 사용하는 방식에서는 전위 .. 2020. 6. 7. [실습과 그림으로 배우는 리눅스 구조] 3.프로세스 관리 프로세스 생성 목적 리눅스에서는 두가지 목적으로 프로세스를 생성한다. 목적1. 같은 프로그램의 처리를 여러 개의 프로세스가 나눠서 처리한다. 예를 들어, 웹서버처럼 리퀘스트가 여러개 들어왔을 때 동시에 처리해야 하는 경우. 목적2. 전혀 다른 프로그램을 생성한다. 예) bash로 부터 각종 프로그램을 새로 생성하는 경우. fork() 함수 같은 프로그램의 처리를 여러개의 프로세스가 나눠서 처리한다는 목적1에는 fork 함수만을 사용한다. fork 함수를 실행하면 실행한 프로세스와 함께 새로운 프로세스가 1개 생성된다. -순서 1.자식 프로세스용 메모리 영역을 작성하고, 거기에 부모 프로세스의 메모리를 복사한다. 2.fork()함수의 리턴값이 각기 다른 것을 이용하여 부모 프로세스와 자식 프로세스가 서로 .. 2020. 6. 6. [실습과 그림으로 배우는 리눅스 구조] 2.사용자 모드로 구현되는 기능 기본적으로 사용자 모드의 프로세스 처리부터, 시스템 콜을 통한 커널 처리를 호출하는 방식. 시스템콜 프로세스는 프로세스의 생성이나 하드웨어의 조작 등 커널의 도움이 필요한 경우 시스템 콜을 통해 커널에 처리 요청을 한다. 예) 프로세스 생성 , 삭제. 메모리 확보, 해제. 프로세스간 통신. 네트워크. 파일시스템 다루기. 파일 다루기. cpu의 모드 변경 시스템콜은 cpu의 특수한 명령을 실행해야만 호출된다. 프로세스는 보통 사용자 모드로 실행되고 있지만 커널에 처리를 요청하고자 시스템 콜을 호출하면 cpu에서는 인터럽트 이벤트가 발생한다. 인터럽트 이벤트가 발생하면 cpu는 사용자 모드에서 커널모드로 변경되며, 요청한 내용을 처리하기 위해 커널은 동작하기 시작한다. 요청한 내용처리가 끝나면 커널 내의 시.. 2020. 6. 5. [실습과 그림으로 배우는 리눅스 구조] 1.컴퓨터 시스템의 개요 컴퓨터 시스템이 동작할 때 하드웨어에서 반복되는 부분 입력장치 혹은 네트워크 어댑터를 통해서 컴퓨터에 무언가 처리 요청이 들어온다. 메모리에 있는 명령을 읽어 cpu에서 실행하고 그 결과 값을 다시 메모리의 다른 영역에 기록한다. 메모리의 데이터를 하드디스크나 ssd 등의 저장 장치에 기록 또는 네트워크를 통해 다른 컴퓨터에 전송하거나 디스플레이 등의 출력 장치를 통해 사람에게 결과값을 보여준다. 1번부터 반복해서 실행한다. 위와 같은 순서를 반복해서 사용자에게 필요한 하나의 기능으로 정리한 것을 프로그램이라고 한다. -어플리케이션 : 오피스 프로그램, 카톡, 인스타 등등 -미들웨어 : 웹서버, 데이터 베이스 등 -os : 리눅스, ms 등 리눅스의 중요한 역할은 디바이스를 조작하는 일이다. 리눅스 같은.. 2020. 6. 4. [운영체제 실습] 1.프로세스 생성과 종료 프로세스의 계층 구조 최상위 init 프로세스는 부모이다. 그 아래 login, sshd(실행파일이름) 프로세스는 자식들이고 그 아래 또 자식들이 생긴다. 각각의 프로세스마다 각자의 고유한 프로세스 id를 가지고 있다. 각 부모 프로세스는 자식 프로세스를 생성할 수 있다. 자식 프로세스가 종료될때 부모 프로세스가 자식 프로세스를 정리해주는 작업을 한다. 정리를 안해주면 자식프로세스가 종료 후 좀비 프로세스가 된다. 좀비프로세스가 많이 생기게 되면, 시스템 효율이 낮아진다. 좀비프로세스란? - 종료 처리 중 멈춰 있는 상태의 프로세스 - 자식 프로세스가 종료되었지만 , 부모 프로세스가 해당 프로세스의 종료에대해 처리하지 않아 커널 프로세스 테이블에 남아 있는 상태의 프로세스. - 좀비 프로세스가 생성되면 .. 2020. 6. 3. [운영체제 정리] 6.CPU 스케쥴링 개요 프로그램의 실행 1.프로그램이 실행될때, CPU와 I/O가 반복 사용된다. CPU를 사용하는 단계를 CPU 버스트, I/O를 사용하는 단계를 I/O 버스트라고 한다. CPU BURST TIME 분포 프로그램 실행시 CPU 바운드 잡, I/O 바운드 잡이 섞여있다. (그래프를 보면 CPU 잡과 I/O 바운드 잡이 섞여 있음) I/O 바운드잡은 사람과의 인터렉티브한 커뮤니케이션을 하기 때문에 CPU잡이 너무 많이 CPU를 갖고 있으면 I/O 바운드가 CPU를 잡지못하므로 사용자가 답답해 할 수 있다. 그래서 CPU 스케쥴이 필요하다. 프로세스의 특성 분류 프로세스는 특성에 따라 두가지로 나눔 I/O 바운드 프로세스: 키보드를 많이 칠때... CPU 바운드 프로세스: 계산을 많이 할때... CPU 스케쥴.. 2020. 6. 2. [운영체제 정리] 5.프로세스 관리 프로세스는 어떻게 만들어지나? 누가 프로세스를 만드나? - 부모 프로세스가 자식 프로세스를 생성한다.(트리형태) - 프로세스는 운영체제로 부터 자원을 받고, 부모와 자원을 공유하거나 아닌 모델도 존재한다. 프로세스 생성 1.부모의 주소공간을 자식 프로세스가 복사를 한다. 복사할 때 프로세스의 문맥을 복사한다는 뜻이다. 또 cpu에서 인스트럭션을 어디까지 수행했는지를 나타내는 pcb, 레지스터등 자원도 다 복제한다. 그 후 2.그 공간에 새로운 프로그램을 덮어씌운다. (위의 그림 참고) (리눅스에서는 부모와 자식의 내용이 같으면 부모프로세스의 주소공간을 공유하고 자식은 프로그램 카운터만 카피해서 똑같은 위치를 가리키고 있을 수도 있다. 만약 내용이 서로 다르면 그제서야 부모의 주소공간을 카피해서 자식이 갖.. 2020. 6. 1. [운영체제 정리] 4.스레드 왜 스레드가 필요한가? 동일한 일을 여러개 하는 프로세스가 있다면 프로세스마다 독립적인 주소 공간이 만들어져서 메모리가 낭비된다. 스레드의 개념 1 스레드의 개념 2 스레드의 주소공간 스레드: 프로세스는 하나만 띄워 놓고, 프로그램의 어떤 부분을 실행할건지, 프로그램 카운터만 여러개 둔다.cpu를 실행하는 단위. 스레드는 주소공간(코드,데이터)을 공유한다. 스택에 ,pc, 레지스터 만 스레드 간에 독립적으로 가지고 있다. 스레드의 구성 스레드 장점 - 다중 스레드로 구성된 테스크 구조에서는 하나의 서버 스레드가 블락(웨이팅) 상태인 동안에도 동일한 테스크 내의 다른 스레드가 실행 (러닝)되어 빠른 처리를 할 수 있다.(빠른응답성) - 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리률과 성능 향상을.. 2020. 5. 30. [운영체제 정리] 3.프로세스 프로세스란? 프로세스: 실행중인 프로그램. 프로세스의 문맥: 프로세스의 현재 상태를 나타내는것.과거의 프로그램이 실행되면서 현재까지 왔을때, 프로그램의 현재상태를 보여준다. PCB(프로세스 컨트롤 블락): 프로세스가 실행될때마다 운영체제는 PCB를 만들어서, cpu, 메모리를 얼마나 할당할지 판단한다. 왜 pcb문맥이 필요한가? 현대의 cpu는 타임쉐어링 방식으로 작동되기 때문에 cpu가 어떤 프로그램이 사용을 했는지 기억을해야 cpu를 뺏기고 , 얻었을때 이어서 프로그램을 실행할수 있다. 프로세스의 상태 프로세스의 상태는 대표적으로 러닝, 레디, 블락이 있다. 컴퓨터는 일반적으로 레디와 런닝 상태를 주로 반복한다. 프로세스의 상태변화 1 - 뉴상태 : 프로세스가 시작되어 그 프로세스를 위한 자료 구조는.. 2020. 5. 29. 이전 1 ··· 39 40 41 42 43 다음