본문 바로가기

study

(44)
CPU Scheduling 1 📑 CPU Scheduling 개념 및 지난 시간 복습 CPU Scheduling: ready queue에 들어와 있는 CPU를 얻기 위해 대기 중인 프로세스들 중에 어떤 프로세스에게 cpu를 줄지 결정하는 것 CPU Scheduling의 2가지 이슈 누구한테 CPU를 줄 것인가 실행 중인 프로세스를 끝까지 기다릴 것인가 혹은 중간에 CPU를 뺏을 것인가 (cf. 끝까지 기다린다면 긴 프로세스가 들어왔을 때 대기 시간이 증가할 수 있음) preemptive : CPU의 자진 반납을 기다리는 방법(비선점형) nonpreemptive : 강제로 CPU 빼앗을 수 있는 방법(선점형) CPU 스케줄링을 위한 성능 척도 분류 시스템 입장에서의 성능 척도 이용률 : CPU가 놀지 않고 일한 시간의 비율 처리량 : ..
[python] 백준 - 22352 항체 인식 오늘은 백준 사이트의 항체 인식 문제에 대해서 풀어보려 한다. 문제에 관련된 정보는 아래 링크를 통해 확인할 수 있으며, 바로 오늘의 문제에 대해 이야기해보겠다. https://www.acmicpc.net/problem/22352 22352번: 항체 인식 첫 번째 줄에는 SP 촬영 결과의 크기를 의미하는 두 정수 $N$과 $M$이 주어진다. ($1 \le N, M \le 30$) 이는 촬영 결과가 세로로 $N$칸, 가로로 $M$칸 크기의 격자라는 것을 의미한다. 다음 $N$개의 줄에는 www.acmicpc.net 1. 아이디어 구현 나의 경우 이 문제는 dfs(깊이 우선 탐색)를 통해 문제를 해결하였다. 항체가 생겼다면 항체가 생긴 지점을 기준으로 붙어있는 같은 숫자들이 모두 항체와 같은 숫자로 변경된다..
Process Management 1&2 프로세스 생성 부모 프로세스가 복제 형태를 통해 자식 프로세스 생성 부모 프로세스는 여러 명의 자식 프로세스를 생성할 수 있음 => 트리 형태로 발전 자원의 공유와 관련해서 보통은 공유 X 부모 프로세스 자체를 새로운 프로세스로 만들어줌(exec()) 이후 코드 실행 불가 (아래 예시의 경우 1 -> hello 3 출력 후 종료) cf) echo는 뒤에 나오는 arguments를 그대로 출력해주는 리눅스 커맨드로 execip("프로그램 이름 ", "프로그램 이름", arguments, (char*) 0 ) 구조 wait() 시스템 콜 wait() : 시스템을 잠들게 하는 것(block 상태) 자식 프로세스의 종료를 기다리며 block 상태가 된다. -> 자식 프로세스 종료 후에는 ready 상태 ex) ..
[python] 백준 - 1120 문자열 오늘은 백준의 문자열이라는 문제를 들고 왔다. 직접 풀어보고 싶은 분들은 아래의 링크로 접속해 풀어보면 된다. https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 1. 아이디어 구축 우선 긴 문자열을 앞에서부터 보며 짧은 길이의 문자열과 짧은 길이의 문자열의 길이만큼을 비교해 가장 최소가 되는 차이를 구한다. 2. 코드 구현 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import..
[python] 백준 - 14889 스타트와 링크 오늘은 푼지는 시간이 조금 지났지만, 나름 인상에 남았던 문제를 들고 왔다. 아래는 문제 링크로 문제와 관련된 내용은 밑의 링크로 접속해 확인할 수 있다. https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 1. 아이디어 나의 경우는 전체 멤버 수 중(짝수 보장) 절반을 완전 탐색을 통해 한 팀을 꾸리고 나머지 팀은 위의 팀에 들어가지 않은 사람들을 넣어 만들어줬다. 팀의 전력을 구하기 위해서는 설명에서 주어진 것과 동일한 이차원 배열을 만들어 모든 쌍의 능력치의 합을..
Process 2&3 동기식 입출력과 비동기식 입출력 동기식 입출력 프로세스가 입출력 요청 -> 운영체제를 통해서 -> 끝날 때까지 기다림 (CPU 독차지, 낭비) 비동기식 입출력 프로세스가 입출력 요청 -> 운영체제를 통해서 -> 오래 걸리며 CPU가 다른 instruction 실행 (CPU 필요한 자원에 분배) (효울성) Thread thread : 프로세스 내부에 여러 개의 CPU 수행 단위가 있는 경우 PCB : 프로세스 관리 목적 / 프로세스 상태, id, 프로그램 카운터(메모리의 어느 부분을 실행하고 있는가) 등 스레드 : 프로세스(코드, 데이터, 스택)은 하나만 띄우고 프로그램 카운터를 여러 개(하나의 프로세스에 여러 개의 CPU 수행 단위) 메모리 주소 공간/프로세스 상태/프로세스가 사용하는 각종 자원 공유 -..
Process 1 프로세스의 개념 프로세스 = 실행 중인 프로그램 프로세스의 현재 상태를 정확하게 이해하려면 프로세스 문맥, 즉 프로세스의 탄생부터 종료까지 무엇을, 어떻게 실행했는지를 알아야 한다. 프로세스의 상태 CPU는 매 순간 하나의 프로세스만을 잡고 있는다. Running: CPU를 잡고 instruction을 수행 중인 상태 Ready: CPU를 기다리는 상태(메모리 등 다른 조건을 모두 만족해야 함) Blocked(wait, sleep) CPU를 주어도 당장 instruction을 수행할 수 없는 상태 Process 자신이 요청한 event(cf. I/O)가 즉시 만족되지 않아 이를 기다리는 상태 New: 프로세스가 생성중인 상태 Terminated: 수행(execution)이 끝난 상태 CPU는 빠르게 그리..
System Structure & Program Execution 2 운영체제 공부에 앞서 하드웨어와 프로그램의 구동 방식에 대한 학습 진행 지난 시간 복습 CPU / Memory : 컴퓨터(host) I/O device : 데이터 입출력 담당 device controller : I/O 디바이스로 데이터를 읽거나 쓸 때 local buffer에 데이터 저장, CPU에게는 interrupt를 걸어 소식 전달 instruction을 실행하기 전 interrupt를 확인하고 interrupt가 있다면 운영체제한테 시스템 제어권을 넘김 mode bit에 따라 instruction 실행 여부 변경(0=모든 instrcuction 가능 / 1=한정됨(보안상의 목적)) I/O 디바이스 작업은 mode bit==0일 때만 가능(서비스 요청시 시스템콜 => 의도적으로 interrupt l..