블로그
전체 62024. 10. 13.
0
워밍업클럽CS2기 2주차 미션
운영체제1. FIFO 스케줄링의 장단점이 뭔가요?장점은 단순하고, 직관적이다. 단점은 한 프로세스가 끝나야 다음 프로세스가 시작되어 실행기간이 짧고 늦게 도착한 프로세스는 실행기간이 길고 빨리 도착한 프로세스의 작업이 끝날 때까지 기다려야한한다.2. SJF를 사용하기 여러운 이유가 뭔가요?어떤 프로세스가 얼마나 실행될지 예측하기 힘들다. 또한, Burst Time이 짧은 프로세스가 계속 추가 되면 그만큼 지연 되고, Burst Time이 긴 프로세스는 오랫동안 실행되지 않을 수도 있기 때문이다. 3. RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요?컨텍스트 스위칭이 자주 일어나고 타임 슬라이스에서 처리되는 프로세스 처리량보다 컨텍스트 스위칭 처리량이 더 많아진다. 4. 운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?CPU 사용률과 처리량을 중요하게 생각하면 CPU Bound Process, 응답속도를 중요하게 생각하면 I/O Bound Process이다.5. 공유자원이란무엇인가요?프로세스 간 통신할 때 공동으로 이용하는 변수나 파일을 말한다. 각 프로세스의 접근 순서에 따라 결과가 달라질 수 있고 컨텍스트 스위칭으로 시분할 처리를 하기 때문에 어떤 프로세스가 먼저 실행되고 나중에 실행되는지 예측하기 힘들다.6. 교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?상호배제, 비선점, 점유와 대기, 원형대기가 있다.프로세스가 한 리소스를 점유했다면 다른 프로세스에게 공유되면 안되고(상호배제), 프로세스 A가 리소스를 점유하고 있을 때 프로세스 B가 리소스를 뺏을 수 없어야한다.(비선점) 어떤 프로세스가 리소스 A를 가지고 있는 상태에서 리소스 B를 원하는 상태여야하며(점유와 대기), 점유와 대기를 하는 프로세스들의 관계가 원형을 이루고 있어야한다. (원형대기) 자료구조와 알고리즘1. 재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요?콜스택이라는 메모리 공간이 가득 차서 자동으로 종료될 때까지 함수를 실행한다. 2. 0부터 입력 n까지 홀수의 합을 더하는 재귀 함수를 만들어보세요.function sumOdd(n) { // 재귀 로직 if (n
웹 개발
・
CS
・
인프런워밍업클럽
・
자료구조및알고리즘
・
운영체제
2024. 10. 13.
0
워밍업클럽CS2기 2주차 발자국: 자료구조와 알고리즘
자료구조와 알고리즘 재귀재귀어떠한 것을 정의할 때 자기자신을 참조하는 것재귀함수재귀적으로 정의된 함수탈출 조건, 기저조건이 반드시 있어야함for문 vs 재귀함수재귀함수는 for문 대신이 아님재귀함수로 해결하면 더 많은 메모리 공간을 차지하여 비효율적재귀함수는 더 복잡한 문제를 쉽게 해결하기 위해 사용함 ex) 팩토리얼 재귀적으로 생각하기단순한 반복실행재귀함수 이점이 없고 콜스택 공간을 많이 차지해 성능은 for문보다 안 좋음하위 문제의 결과를 기반으로 현재 문제를 계산 (하향식 계산)재귀를 사용하는 이유로 재귀함수에서만 구현할 수 있음ex) 팩토리얼 return number * factorial(number - 1)재귀 - 하노이탑하노이탑한 번에 하나의 원반을 움직일 수 있다.가장 위에 있는 원반만 옮길 수 있다.아래에 작은 원반이 올 수 없다.정렬 - 버블정렬버블정렬앞에 있는 숫자와 옆의 숫자를 비교해서 자리를 바꾸는 알고리즘구현이 쉬우나 성능이 좋진 않음 o(n2)
웹 개발
・
cs
・
인프런워밍클럽
・
자료구조와알고리즘
2024. 10. 13.
0
워밍업클럽CS2기 2주차 발자국: 운영체제
운영체제 CPU 스케줄링SJF (Shortest Job First)Burst Time이 짧은 프로세스를 먼저 실행한다 SJF 문제어떤 프로세스가 얼마나 실행될지 예측하기 힘듦 => 종료시간 예측 어려움Burst Time이 긴 프로세스는 오랫동안 실행 안될 수 있음BUrst Time이 짧은 프로세스가 계속 추가되면 추가되는 만큼 지연됨 RR (Round Robin)프로세스에서 일정시간만큼 CPU를 할당하고 할당 시간이 지나면 강제로 다른 프로세스에게 일정시간만큼 CPU를 할당하고 강제로 CPU를 뺏긴 프로세스는 큐의 가장 뒷부분으로 밀려남 알고리즘 성능타임슬라이스(프로세스에게 할당하는 일정시간, 타임퀀텀이라고도 부름) 에 따라 다름타임 슬라이스가 작은 경우 컨텍스트 스위칭이 자주 일어나고 타임 슬라이스에서 처리되는 프로세스 처리량보다 컨텍스트 스위칭 처리량이 더 많아짐 => 오버헤드가 더 크다 FIFO와 Round Robin 비교평균 대기 시간이 비슷하다면FIFO가 더 효율적Round Robin은 컨텍스트 스위칭이 있어 컨텍스트 스위칭 시간이 더 추가됨 MLFQ (Multi Level Feedback Queue)RR의 업그레이드 된 알고리즘CPU 사용률과 I/O 사용률이 좋게 나오는 작은 크기의 타임 슬라이스를 선택함우선 순위를 가진 큐를 여러 개 준비한 후 우선순위가 클수록 타임 슬라이스가 작고 우선순위가 낮을수록 타임 슬라이스가 커짐타임 슬라이스 크기를 오버해서 CPU를 뺏기면 우선순위가 더 낮은 큐로 이동 => 최종적으로 무한대에 가까운 타임슬라이스를 할당 받아 FIFO처럼 연속적으로 작업을 마칠 수 있음. 프로세스 동기화프로세스 간 통신한 컴퓨터 내에서 프로세스 간 통신파일을 이용하는 방법: 통신하려는 프로세스들이 하나의 파일을 읽고 쓰는 것파이프를 이용하는 방법: 운영체제가 생성한 파이프를 이용해 데이터를 읽고 씀쓰레드를 이용한 방법한 프로세스 내에서 쓰레드 간 통신쓰레드의 데이터 영역에 있는 전역변수나 힙을 이용하면 통신가능네트워크를 이용한 방법운영체제 제공 소켓 통신RPC 통신공유자원과 임계구역공유자원프로세스 간 통신할 때 공동으로 이용하는 변수나 파일각 프로세스의 접근 순서에 따라 결과가 달라질 수 있음컨텍스트 스위칭으로 시분할 처리를 하므로 어떤 프로세스가 먼저 실행되는지 예측하기 어려움 => 연선 결과 예측 어려움 => 동기화 문제 발생임계구역여러프로세스가 동시에 사용하면 안되는 영역경쟁조건공유자원을 서로 사용하기 위해 경쟁하는 것상호배제메커니즘임계구역 문제 해결 방법요구사항임계영역엔 동시에 하나의 프로세스만 접근여러 요청에도 하나의 프로세스의 접근만 허용임계구역에 들어간 프로세스는 빠르게 나와야함세마포어상호배제 메커니즘 중 하나 모니터세마포어의 단점을 해결한 상호배제 메커니즘 데드락데드락이란?교착상태 (데드락)여러 프로세스가 서로 다른 프로세스가 끝나기를 기다리다가 아무 작업도 진행 못하는 상태공유 자원으로 인해 발생필요조건 (한 가지라도 충족되지 않으면 교착 상태가 발생하지 않음)상호배제 : 프로세스가 한 리소스를 점유했다면 다른 프로세스에게 공유되면 안됨비선점: 프로세스A가 리소스를 점유하고 있을 때 프로세스 B가 리소스를 뺏을 수 없어야함점유와 대기: 어떤 프로세스가 리소스 A를 가지고 있는 상태에서 리소스 B를 원하는 상태여야함원형대기 : 점유와 대기를 하는 프로세스들의 관계가 원형을 이루고 있음 데드락 해결교차상태 회피프로세스들에게 자원을 할당할 때 어느 정도 할당해야 교착 상태가 발생하는지 파악해서 교착 상태가 발생하지 않는 수준으로 할당함전체 자원의 수와 할당된 자원의 수로 안정상태와 불안정 상태로 나눔운영체제는 최대한 안정상태를 유지하려고 자원할당함불안정상태 사용 가능한 자원이 적어 프로세스 요청 예상 자원을 충족시키지 못하는 상태교착 상태에 빠질 확률 높음은행원 알고리즘(각 프로세스가 현재 요청이 예상되는 자원을 구함) 은 비용이 비싸고 비효율적임타이머 이용가벼운 교착 상태 검출에 이용일정 시점마다 체크 포인트를 만들어 작업을 저장하고 타임아웃으로 교착상태가 발생했다면 마지막으로 저장했던 체크 포인트로 롤백억울하게 종료되는 프로세스 발생할 수 있음자원 할당 그래프무거운 교착 상태 검출에 이용현재 운영체제에서 프로세스가 어떤 자원을 사용하는지 지켜보고 교착상태 발생 시 해결지속적으로 자원할당 그래프 유지 및 검사 -> 오버헤드 발생교착상태 일으킨 프로세스 강제종료 후 다시 실행 시 체크포인트로 롤백타이머 이용 시 발생했던 억울하게 종료되는 프로세스 발생 안 함메모리메모리 종류레지스터가장 빠른 기억 장소로 CPU에 위치컴퓨터가 꺼지면 데이터가 사라짐 => 휘발성 메모리CPU가 계산할 때 메인 메모리 값을 가져와서 계산하고 결과는 다시 메인 메모리에 저장시킴캐시레지스터와 속도 차이가 많이 나는 메인 메모리가 필요할 데이터를 예측해 가져온 데이터를 저장하는 곳레지스터와 메인 메모리 사이에 위치휘발성 메모리성능의 이유로 여러 개 있음.메인메모리속도는 빠르지만 비싸기 때문에 실행중인 프로그램만 올림휘발성 메모리보조저장장치비휘발성 메모리메모리와 주소주소메모리를 관리하기 위해 1바이트 크기로 구역을 나누고 숫자를 매김32bit보다 64bit가 한 번에 처리할 수 있는 양이 많아 속도가 빠름물리주소공간메모리를 컴퓨터에 연결하면 0x0번지부터 시작하는 주소공간논리주소공간사용자 입장에서 바라본 주소공간사용자는 물리주소를 몰라도 논리주소로 접근할 수 있음상대주소(논리주소)컴파일러는 0x0번지라고 가정해서 프로그램을 만듦절대주소(물리주소)메모리 관리자가 바라본 실제 프로그램이 올라간 번지경계레지스터하드웨어적으로 운영체제 공간과 사용자 공간을 나눔메모리 관리라는 사용자 프로세스가 경계 레지스터를 벗어났는지 검사하고 종료시킴재배치 레지스터프로그램의 시작 주소가 저장되어있음메모리 할당방식메모리 오버레이큰 프로그램을 잘라서 당장 실행시켜야할 부분만 메모리에 올리고 나머지는 용량이 큰 하드디스크의 스왑영역에 저장하는 기법스왑스왑영역에 있는 데이터 일부를 메모리로 가져오고 메모리에 있는 데이터를 스왑영역으로 옮김가변분할방식프로세스의 크기에 따라 메모리를 나누는 방식프로세스 크기에 맞게 할당되기 때문에 낭비 공간인 내부 단편화가 없음단점외부단편화: 연속되지 않은 공간은 새로운 프로세스에게 메모리를 할당할 수 없음외부단편화가 발생한 공간을 합쳐주는 조각모음을 하면 됨조각모음을 할 경우 프로세스를 일시중지 해야하고 메모리를 옮겨야해서 오버헤드 발생 고정분할방식비연속 메모리할당프로세스 크기와 상관없이 메모리를 정해진 크기로 나누는 방식구현이 간단하고 오버헤드가 없음단점내부단편화: 분할되는 크기를 조절해서 내부 단편화를 최소화버디시스템2의 승수로 메모리를 분할해 할당함가변분할방식과 고정분할방식을 합쳐 단점을 최소화함프로세스 크기에 따라 할당되는 메모리 크기가 달라짐외부 단편화를 방지하기 위해 메모리 공간을 확보하는 것이 간단함내부 단편화가 발생해도 많은 공간의 낭비가 발생하지 않음
웹 개발
・
운영체제
・
인프런워밍업클럽
・
CS
2024. 10. 06.
1
워밍업클럽CS2기 1주차 발자국: 자료구조
자료구조 개요자료구조와 알고리즘이란?자료구조데이터가 어떤 구조로 저장되고 어떻게 사용되는지 나타냄ex) 변수, 배열자료구조에 따라 처리방법이 달라지고 코드가 단순해질 수 있음알고리즘어떤 문제를 해결하기 위한 확실한 방법자료구조 영향을 많이 받고 같은 자료구조라도 알고리즘이 달라질 수 있음시간 복잡도특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간일반적으로 성능의 척도는 알고리즘 속도로 평가됨알고리즘을 평가할 때는 코드에서 성능에 영향을 많이 주는 부분을 찾아 실행시간을 예측함 => 반복문최선의 경우: Big - 오메가 최악의 경우: Big -O 평균의 경우: Big- 세타빅 오 표기법입력이 늘어날 때 계산이 늘어가는 척도를 나타냄자료구조배열인덱스 참조는 길이에 상관없이 한 번에 가져오기 때문에 O(1) 성능읽기, 쓰기, 참조에서 좋은 성능을 보임 크기 예측이 힘들어 메모리 낭비가 발생하기 때문에 데이터 삽입, 삭제 성능이 안좋음연결리스트필요한 데이터만큼 노드를 만들어 저장하고 다른 노드를 연결함첫 노드의 주소만 알고 있으면 다른 모든 노드에 접근이 가능함저장하려는 데이터들을 메모리 공간에 분산해서 할당하고 이 데이터들을 서로 연결하는 노드를 활용하여 배열의 단점을 해결함배열과 연결리스트 비교배열은 시작주소만 알면 인덱스를 활용하여 뒤에 있는 데이터 접근이 쉬움연결리스트는 데이터들이 전부 떨어져있어 바로 접근할 수 없지만 배열 초기 크기를 몰라도 됨데이터 삽입 삭제가 자주 일어난다면 연결리스트, 참조가 자주 일어난다면 배열스택First In Last Out먼저 들어간 데이터가 나중에 나오는 규칙데이터 삽입과 제거를 무조건 첫번째 인덱스에 지정하면 연결리스트로 스택 구현 가능큐First In First out먼저 들어간 데이터가 먼저 나오는 규칙FIFO 스케줄링운영체제가 프로세스 작업 요청을 들어온 순서대로 큐에 넣고 CPU가 순서대로 처리함덱데이터 삽입과 제거를 head과 tail 두 군데서 자유롭게 할 수 있음덱을 이용하면 스택과 큐를 전부 구현 가능해시테이블해시와 테이블이 합쳐진 구조로 메모리 낭비를 줄이기 위해 어떤 계산을 하는 함수인 해시함수로 테이블의 인덱스를 새로 만듦읽기, 삽입, 수정, 삭제 O(1) 성능장점: 빠른 데이터 읽기, 삽입, 삭제단점: 공간 효율성이 좋지 않음, 해시함수에 따라 메모리 사용이 달라 좋은 해시함수가 필요함
알고리즘 · 자료구조
・
인프런워밍업클럽
・
자료구조
・
CS
2024. 10. 06.
1
워밍업클럽CS2기 1주차 발자국: 운영체제
운영체제 운영체제 들어가기운영체제 개요운영체제가 하는 일프로세스 관리메모리 관리하드웨어 관리파일 시스템 관리 운영체제의 구조커널프로세스와 메모리, 저장장치를 관리하는 운영체제 핵심기능을 담당사용자는 운영체제 커널에 직접 접근할 수 없고, GUI나 CLI 등 인터페이스를 통해 접근 가능하다.시스템콜사용자로부터 커널을 보호하기 위한 인터페이스시스템 콜을 통해서 어플리케이션 접근사용자와 어플리케이션은 커널과 인터페이스로 시스템콜을 사용함드라이버하드웨어와 커널의 인터페이스ex) 디바이스 드라이버컴퓨터 하드웨어와 구조버스데이터를 전달하는 통로로 cpu와 메모리를 연결함메인보드하드웨어를 연결하는 장치메인보드의 버스가 장치 간의 데이터 전송을 담당CPU중앙처리장치로 ALU(산술논리연산장치), 제어장치, 레지스터 등으로 구성되어있다. 레지스터계산을 위해 데이터를 임시로 보관하는 장치RAM저장된 위치와 상관없이 읽는 속도가 같음.전력이 끊기면 데이터 손실메인 메모리로 사용한다.ROM전력이 끊겨도 데이터 손실 없다.데이터를 한 번 쓰면 수정이 불가함.바이오스 저장용컴퓨터의 부팅과정전원버튼을 누른다.ROM에 저장된 바이오스를 시작한다.하드웨어 이상 유무 체크부트로더 실행운영체제 메모리로 불러옴인터럽트폴링 방식 단점 해결CPU는 명령을 내리고 완료되면 신호를 받아 인터럽트 서비스 루틴을 작업시켜 작업을 완료함.인터럽트 서비스 루틴은 특정 인터럽트가 들어오면 인터럽트를 처리하는 함수로 비동기적으로 동작하여 성능에 이점이 있음. 프로세스와 쓰레드프로그램과 프로세스프로그램저장장치에 저장된 명령문의 집합체로, 저장장치만 사용하는 수동적인 존재프로세스하드디스크에 저장된 프로그램이 메모리에 올라간 상태로, 실행중인 프로그램메모리, CPU 스케줄링 알고리즘에 따라 CPU도 사용, 입출력 하는 능동적인 존재CODE, DATA, HEAP, STACK 영역으로 나누어짐CODE 영역 : 실행하는 코드 저장DATA 영역: 전역변수와 정적 변수 저장HEAP 영역: 런타임 시 할당할 수 있는 공간 (동적으로 메모리 할당)STACK 영역: 지역변수와 함수호출 했을 때 필요한 정보 (매개변수와 돌아갈 주소) 저장컴파일 과정전처리기 -> 매크로로 정의한 숫자 치환 및 필요한 파일 불러옴컴파일러 -> 어셈블리어로 변환어셈블리어 -> 기계어로 변환링커 -> 링킹 : 여러가지 라이브러리나 다른 소스코드로 연결.exe로 만들어짐메모리에 올라가는 프로그램이 되어 프로세스가 됨 -> 운영체제에 의해 관리 멀티프로그래밍과 멀티프로세싱유니프로그래밍메모리에 프로세스 1개멀티프로그래밍메모리에 여러개 프로세스멀티프로세싱CPU가 여러개의 프로세스를 처리함메모리가 작았던 과거에는 스와핑 활용스와핑: 메모리에 있는 데이터를 다른 저장장치로 보내고 다른 저장장치에서 메모리에 올림 PCB프로세스가 만들어지면 운영체제는 해당 프로세스의 정보를 가지고 있는 PCB를 만들고 저장함연결리스트 자료구조로 저장됨프로세스가 종료되면 연결리스트에서 해당 프로세스의 PCB를 제거함구조 : 프로그램카운터, 레지스터 정보 등프로세스 상태생성상태: PCB를 생성하고 메모리에 프로그램 적재 요청 -> 승인준비상태: CPU 스케줄러에 의해 CPU 할당실행상태: 실행상태에 있는 프로세스의 수는 CPU 갯수 -> (초과 시 강제로 뺏고 준비상태로 돌아감)인터럽트: CPU가 명령어를 수행하다 자신이 처리할 수 없는 명령이면 스스로 인터럽트를 건다. -> CPU는 하던 일을 멈추고 해당 인터럽트를 처리하려고 함대기상태: 입출력 요청 시 완료될 때까지 기다림완료상태: 프로세스 종료, 사용한 데이터 메모리에서 제거, 생성된 PCB 제거컨텍스트 스위칭프로세스 실행 중 다른 프로세스를 실행하기 위해 실행중인 프로세스 상태 저장, 다른 프로세스의 상태값으로 교체CPU 점유시간이 끝났거나, I/O 요청이 있거나 인터럽트가 있을 때 발생컨텍스트 스위칭 하는 상황프로세스 A의 점유 시간동안 실행 -> 초과 -> 인터럽트 발생 -> CPU 레지스터 값 등을 PCB A 저장 -> 프로세스 B 레지스터 값을 세팅 -> 프로그램 카운터(명령어 주소를 가지고 있음) 를 가지고 있어 명령어 바로 실행 가능 -> 프로세스 B 시간초과 -> 인터럽트 발생 -> 다시 프로세스 A 실행 프로세스 생성과 종료프로세스 생성운영체제 부팅 후 0번 프로세스가 생성될 때 딱 한 번 실행됨다른 프로세스(자식 프로세스)들은 fork() 함수를 사용하여 0번 프로세스(부모 프로세스)의 코드영역, 데이터 영역, 스택영역 등 PCB 내용 모두 복사해서 사용 => 생성보다 복사가 빠름 과정: .exe 파일 클릭 -> 운영체제는 프로그램의 코드영역과 데이터 영역을 메모리에 로드, 빈 스택과 빈 힙을 만들어 공간 확보 -> 관리하기 위한 PCB 생성 후 값 초기화프로세스 종료컴퓨터 껐다 키면 메모리가 초기화됨 쓰레드쓰레드는 프로세스 내부에 위치, 프로세스 내의 쓰레드 : 운영체제가 작업을 처리하는 단위한 프로세스 내의 쓰레드들은 그 프로세스의 PCB, 코드, 데이터, 힙 영역을 공유함 장단점안정성(프로세스 > 쓰레드)프로세스는 독립적으로 하나의 프로세스에 문제 생겨도 다른 프로세스는 영향 없음, 쓰레드는 해당 프로세스에 문제가 생기면 프로세스 내부의 모든 쓰레드에 영향있음.속도와 자원프로세스 간 통신은 오버헤드가 크고 속도가 느림스레드는 오버헤드가 작고 쉽게 공유할 수 있으나 공간에 문제가 생길 수 있음 CPU 스케줄링CPU 스케줄링 개요CPU 스케줄링운영체제는 모든 프로세스에게 CPU를 할당 및 해제하는 행위컴퓨터 성능에 큰 영향을 미침다중큐프로세스 정보를 담고 있는 PCB는 준비상태의 다중큐에 들어가서 실행되기를 기다리고 CPU 스케줄러에 의해 실행상태로 전환됨CPU 스케줄러는 준비상태의 다중큐를 참조하여 어떤 프로세스를 실행시킬지 결정스케줄링 목표사용자가 사용하는 시스템에 따라 스케줄링 목표가 달라짐FIFOFirst In First Out : 먼저 들어온 작업이 먼저 나간다스케줄링 큐에 들어온 순서대로 CPU를 할당 받음 -> 먼저 들어온 프로세스 종료 후 다음 프로세스 실행장점단순함, 직관적단점한 프로세스가 끝나야 프로세스가 시작됨실행시간이 짧고 늦게 도착한 프로세스가 실행시간이 길고 빨리 도착한 프로세스의 작업이 끝날 때까지 기다려야함 => 평균 대기 시간이 길어지면서 스케줄링 성능이 안 좋을 수 있음.
알고리즘 · 자료구조
・
인프런워밍업클럽
・
운영체제
・
CS
2024. 10. 06.
0
워밍업클럽CS2기 1주차 미션
운영체제 1.while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?폴링 방식 단점을 해결한 인터럽트를 활용합니다. 인터럽트란 CPU가 명령을 내리고 작업이 완료되면 신호를 받아 인터럽트 서비스 루틴을 실행시켜 작업을 완료합니다. 비동기적으로 동작하여 성능에 이점이 있습니다. 2. 프로그램과 프로세스가 어떻게 다른가?프로그램은 저장장치에 저장된 명령문의 집합체로 저장장치만 사용하는 수동적인 존재입니다. 프로세스는 하드디스크에 저장된 프로그램이 메모리에 올라간, 실행중인 프로그램을 말하며 CPU 사용과 입출력도 수행할 수 있는 능동적인 존재입니다. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가?멀티프로그래밍은 메모리에 여러개의 프로세스가 올라와있고, 멀티프로세싱은 CPU가 여러 개의 프로세스를 처리합니다.멀티프로그래밍은 메모리에 여러 개의 프로세스가 실행 중인 상태를 말하고, 멀티 프로세싱은 CPU가 여러 개의 프로세스를 처리하는 것을 말합니다. 운영체제는 프로세스를 관리하기 위해 어떤 것을 사용하는가?프로세스가 만들어지면 운영체제는 해당 프로세스의 정보를 가지고 있는 PCB(Process Control Block)를 만들고 저장합니다. 연결리스트라는 자료구조로 저장되고 프로세스가 종료되면 연결리스트에서 해당 프로세스의 PCB를 제거합니다. 5. 컨텍스트 스위칭이란 무엇인가?프로세스 실행 중 다른 프로세스를 실행하기 위해 실행 중인 프로세스 상태를 저장하고 다른 프로세스의 상태 값으로 교체하는 것을 말한다. CPU 점유시간이 끝났거나, I/O 요청이 있거나 인터럽트가 있을 때 등 발생한다. 자료구조와 알고리즘 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다. 이 때 여러분이라면 학생 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.보통 교실의 학생 수는 정해져 있으나, 전학이나 자퇴 등의 사유로 인원 수가 변동될 수 있습니다. 하지만 그 횟수가 빈번하지 않고 데이터의 삽입, 삭제보다는 주로 참조 용도로 쓰일 것으로 생각되어 배열이 적당하다고 판단됩니다. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.들어온 순서대로 주문을 처리하고, 주문이 변경이나 취소되는 경우를 고려하여 이중연결리스트를 활용한 큐 적당하다고 생각합니다.
알고리즘 · 자료구조
・
인프런워밍업클럽
・
운영체제
・
자료구조와알고리즘
・
인프런워밍업클럽미션
・
CS