전체 글 446

[운영체제] KOCW 반효경 교수님 강의 - 6. Process 2

프로세스가 입출력 요청을 했을 때 입출력 처리는 운영체제를 통해서 해야하므로, 운영체제에게 입출력 요청을 함 입출력 요청은 시간이 오래 걸림 동기식 입출력 - 입출력이 끝날 때까지 기다리고 아무것도 하지 말고 기다려야하는 것 비동기식 입출력 - 입출력이 진행되는 동안, 이 프로세스가 CPU를 잡아서 명령어를 실행하는 것 동기식 입출력 구현방법 동기식 입출력이므로, I/O가 요청된 후 이 프로세스는 일을 못함 구현방법 1 I/O가 끝날 때까지 CPU를 가지고 있으면서 기다림 구현방법 2 어차피 일을 못하므로 CPU를 다른 프로세스에게 넘겨줌 Thread 개요 프로세스 내부에 CPU 수행 단위가 여러개 있는 경우 같은 일을 하는 프로세스를 여러 개 띄워놓고 싶은 경우 주소 공간 (메모리)를 하나만 띄워 놓고..

CS/운영체제 2022.03.28

[운영체제] KOCW 반효경 교수님 강의 - 5. Process 1

프로세스 program in execution = 실행중인 프로그램 프로세스의 문맥(context)이 중요 프로세스 context 특정 시점에서 프로세스가 어디까지 수행했는지, stack/data/code와 PC와 register 등 어떤 상태인지 프로세스의 현재 상태를 정의 1. CPU 수행 상태를 나타내는 하드웨어 문맥 - PC, register - 이 프로세스가 instruction을 어디까지 실행했는지 2. 프로세스의 주소 공간 - code, data, stack - 현 시점의 프로세스 주소공간에 어떤 내용이 들어가 있는가 3. 프로세스 관련 커널 자료구조 - PCB, 커널 스택 - 프로세스가 실행될 때마다 운영체제가 PCB를 하나씩 두고 관리 - 시스템 콜이 발생할 때마다 커널에서 stack으로..

CS/운영체제 2022.03.28

[React Native] 생명주기와 useEffect()

Mounting 가장 처음 실행되는 단계 constructor에서 모든 것이 이루어지며, state와 prop, component 등을 준비시킴 rendering constructor에서는 http request와 같은 side effect를 실행시키지 말 것 총 4가지 메서드 constructor() static getDerivedStateFromProps() render() componentDidMount() Updating state나 prop이 바뀌어 re-rendering이 필요할 때 총 5가지 메서드 static getDerivedStateFromProps() shouldComponentUpdate() render() getSnapshotBeforeUpdate() componentDidUpda..

[운영체제] KOCW 반효경 교수님 강의 - 4. System Structure & Program Execution 2

인터럽트 인터럽트마다 처리해야될 작업이 커널에 함수로 정의되어있음 인터럽트 벡터 : 인터럽트 종류를 식별 인터럽트 벡터로 커널의 주소를 식별하여 CPU가 처리해야할 작업을 찾음 인터럽트의 종류 하드웨어 인터럽트(Interrupt) device controller와 같은 하드웨어가 발생시킨 인터럽트 소프트웨어 인터럽트(Trap) 1) 시스템 콜 : 사용자 프로그램이 운영체제 함수를 호출 2) Exception : 프로그램 오류에 의한 인터럽트 Timer 프로세스가 할당한 시간만큼 CPU를 사용하면 인터럽트를 보내는 하드웨어 CPU CPU는 매번 PC의 주소 작업만 처리 mode bit에 따라 0이면 운영체제로 모든 명령어 처리, 1이면 사용자 프로그램으로 제한된 명령어 처리 동기식 입출력 (Synchron..

CS/운영체제 2022.03.27

[백준][재귀] 종이의 개수

BAEKJOON Online Judge(BOJ) 문제입니다. https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 문제 https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 내가 작성한 코드 import sys read = sys.stdin.readline def read_data..

코딩테스트 2022.03.24

[백준][세그먼트트리] 최솟값과 최댓값

BAEKJOON Online Judge(BOJ) 문제입니다. https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 문제 https://www.acmicpc.net/problem/2357 2357번: 최솟값과 최댓값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수, 또는 제일 큰 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100 www.acmicpc.net 내가 작성한 코드 import sys sys.setrecursionlimit(10..

코딩테스트 2022.03.23

[백준][누적합] 나머지 합

BAEKJOON Online Judge(BOJ) 문제입니다. https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 문제 https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 내가 작성한 코드 import sys from collections i..

코딩테스트 2022.03.22

[알고리즘] Dynamic Programming을 이해하기 (점화식)

알고리즘의 고비, DP 학부생 때 알고리즘 수업을 들을 때 DP는 너무 쉬운 과목이었습니다. 메모이제이션으로 계산양을 줄인다는 이야기 외에는 이해를 못했기 때문입니다. 석사과정에서 알고리즘은 한학기 내내 DP 문제만 다루는 내용이었습니다. 그 때서야 저는 점화식이 눈에 들어왔고, substruct를 정의해내야 한다는 사실을 알았으며, 2차 배열이 많이 활용된다는 정도 이해하였습니다. 알고리즘에서 DP는 어려운 단원에 속하고, 그렇기 때문에 몇 년 전에는 풀었던 문제도 다시 풀면 못풀고 잊어버리는 듯 합니다. 지금 코딩테스트를 공부하면서, 얼핏 이해했다고 생각한 DP를 활용하지 못하는 제 자신을 보면서 확실한 이해가 필요하다고 생각했습니다. BOJ 2616 소형기관차 제가 간과했던 사실 중 하나는 점화식의..

[Daily Report] 22.03.18 - 자바 코딩테스트 관련 문법

Memo Java 코테 l Arrays - Arrays.toString() array를 출력을 위해 String으로 변환 - Arrays.asList(array) Object의 array를 List로 변환 l Stack - peek() pop하지 않고 top의 elt를 가져옴 l Comparator - Comparator cpr = () -> {} custom compare 함수 l String - charAt() index로 char를 가져옴 l ArrayList.sort(comparator) - comparator를 넣을 때 사용 l Collections - binarySearch 일치하는 값의 index || -(삽입 index + 1) l ArrayList copy - _to.addAll(_fro..

정리하기/DR 2022.03.19