일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- 자바 #java
- 투포인터
- 백준 #파이썬 #알고리즘 #코딩테스트
- BFS
- dp
- Dijkstra
- 코딩테스트
- 다이나믹프로그래밍
- 백트랙킹
- react #리액트 #동빈나
- react #리액트 #동빈나 #나동빈 #유튜브강의
- 백준 #알고리즘 #파이썬 #코딩테스트
- 파이썬
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- 재귀
- java #자바 #생활코딩
- 프로그래머스
- css #생활코딩 #웹
- java #자바 #동빈나
- 다익스트라
- css #웹 #생활코딩
- 백준
- 알고리즘
- java #자바
- 파이썬 #백준 #알고리즘 #코딩테스트
- java #자바 #나동빈
- DFS
- PYTHON
- Today
- Total
목록
728x90
KOCW
728x90
(11)
커리까지
가톨릭대학교 황병연 교수님의 수업입니다. http://www.kocw.net/home/cview.do?cid=a73e20b9fdfb010a 자료구조의 이해 : 개념 자료구조의 개념 지료를 효율적으로 표현하고 저장하고 처리할 수 있도록 정리하는 것 자료구조를 정리하기 전에는 뒤죽박죽이지만 정리한 후에는 정렬된 모습 컴퓨터 분야에서 자료구조를 왜 배워야 할까? 컴퓨터가 효율적으로 문제를 처리하기 위해서는 문제를 정의하고 분석하여 그에 대한 최적의 프로그램을 작성해야 하기 때문이다. 자료의 형태에 따른 분류 단순 구조 정수, 실수, 문자, 문자열 등의 기본 자료형 선형 구조 자료들 사이의 관계가 1:1 관계 순자 리스트, 연결 리스트, 스택, 큐, 데크 등 비선형 구조 자료들 사이의 관계가 1:다 또는 다:다..
반효경 교수 강의 출처 Initial Attemptes to Solve Problem 두 개의 프로세스가 있다고 가정 P0, P1 프로세스들의 일반적인 구조 do{ entry section critical section exit section remainder section }while(1); 프로세스들은 수행의 동기화(synchronize)를 위해 몇몇 변수들 공유할 수 있다. -> synchronization variable 어떤 데이터 간에 접근 공유 데이터 접근 코드 이전에 entry를 넣어서 lock를 건다. 프로그램적 해결법의 충족 조건 Mutual Exclusion(상호 배제) 프로세스 pi가 critical section 부분을 수행중이면 다른 모든 프로세스들은 그들의 critical se..
강의출처 : kocw 반효경 round robin이 좋은 점은 전에 작업하고 있던 부분을 세이브해줌 Multilevel Queue Ready queue를 여러 개로 분할 foregorund(interactive) background(batch - no human interaction) 각 큐는 독립적인 스케줄링 알고리즘을 가짐 foreground - RR 사람과 응답하는 것이니 background - FCFS batch잡이니 fcfs가 더 효울적임 큐에 대한 스케줄링이 필요 Fixed priority scheduling serve all from foreground then from background Possibility of starvation Time slice 각 큐에 CPU time을 적절한 비..
CPU and I/O bursts in Program Execution 프로그램의 path는 cpu를 실행하는 것과 i/o를 실행하는 단계가 있음 cpu와 i/o 버스트를 반복 누구한테 cpu를 줄 것인가 cpu가 나갈까지 cpu를 다 줄것이냐 아니면 중간에 끊어서 다른 cpu에게 줄것이냐 사람이 오래 기다리지 않는 방향으로 가는 것도 중요 주로 사람이 사용하는게 이러한 일을 반복 키볻를 입력하고 하니깐 과학계산용 프로그램같은 경우는 곱셈연산을 수행하니 cpu를 오래 사용함 중간에 사람의 인터렉션이 들어오지 않음 CPU-burst Time의 분포 여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케줄링이 필요 Interactive job에게 적절한 response 제공 요망 CPU와 I/..
출처 : http://www.kocw.net/home/cview.do?lid=3a5437eaa6c9e5b0 프로세스 생성 cpu의 인스트럭션을 어디까지 사용했는지 등도 복제 리눅스 등은 자식이 부모의 주소를 공유함 결국은 각자의 길을 가게 됨 그때야 부모의 일부를 자식이 복사함(copy-on-write (cow)) 내용이 같으면 공유해도 되지만 다르면 일부만 복제 일단 복제생성하고 필요하면 덮어씌움 fork() 시스템 콜 A porcess is created by the fork() system call creates a new address space that is duplicate of the caller int main() { int pid; pid = fork(); if(pid == 0) /* t..
https://core.ewha.ac.kr/publicview/C0101020140321144554159683?vmode=f 프로세스 생성 부모 프로세스가 자식 프로세스 생성 프로세스의 트리 형성 프로세스는 자원을 필요로 함 운영체제로부터 받음 부모와 공유 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 서로 cpu를 얻으려고 경쟁하는게 일반적 수행 부모와 자식은 공존하며 수행되는 모델 자식이 종료 될 때까지 부모가 기다리는 모델 주소공간 자식은 부모의 공간을 복사함 (binary and OS data) 자식은 그 공간에 새로운 프로그램을 올림 유닉스의 예시 fork() 시스템 콜이 새로운 프로세스를 생성 부모를 그대로 복사(OS data except ..
출처 : http://www.kocw.net/home/cview.do?lid=29d9a718cff884c3 동기식 입출력과 비동기식 입출력 동기식 입출력 프로세스가 입출력을 요청 좀 오래 걸리면서 수행됨 입출력 프로세스가 기다려야 하면 동기식 i/o가 완료될 때 까지 cpu를 가지면서 기다림 비동기식 입출력 입출력 프로세스가 진행되는 인스트럭션을 실행하면 비동기식 입출력 어차피 일을 못할 거 일을 할 수 있는 거에 cpu를 주는 것 Thread "A thread (or lightweight process) is a basic unit CPU utilization" Thread의 구성 progran counter register set stack space Thread가 동료 thread와 공유하는 부분(..
출처 :https://core.ewha.ac.kr/assets/publish/C0101020140318134023355997 프로세스의 개념 실행중인 프로그램을 의미 프로세스의 문맥 CPU 수행 상태를 나타내는 하드웨어 문맥 PROGRAM COUNTER 각종 레지스터 어디까지 STACK까지 쌓았는지 어디 레지스터까지 실행했는지 알아야 함 현재 시점의 어디까지 했는지 현재 인스트럭션이 어디까지 실행되었는지 프로세스의 주소 공간 CODE, DATA, STACK 현재 시점의 주소 공간을 알아야 함 프로세스 관련 커널 자료 구조 PCB(PROCESS CONTROL BLOCK) KERNEL STACK 운영체제가 프로세스를 관리하는데 자신의 데이터 영역에 자료구조를 하나 둠 이 친구에게 CPU나 메모리를 얼마나 주..
출처 : http://www.kocw.net/home/cview.do?lid=3dd1117c48123b8e System Structure & Program Execution 컴퓨터 == 호스트라고도 부름 cpu와 메모리로 구성 cpu는 매 순간 메모리에 올라와있는 기계어를 처리함 프로그램 카운터가 가리키고 있는 것을 실행 cpu에서 인스트럭션을 실행하면 다음 것을 다시 할당 프로그램이 항상 순차적으로 실행되는 게 아님 그럼 다른 주소로 점프해서 실행해야 함 cpu는 아주 빠른 일꾼 cpu 안에 있는 레지스터로 실행됨(프로그램 카운터가 가리키는 주소) 다음 인스트럭션을 실행하기 전에 인터럽트를 확인하고 들어왔다면 인스트럭션을 실행하는게 아니라 cpu 제어권이 운영체제에 넘겨짐 모드 빗이 0이냐 1이냐 0이..
보통의 컴퓨터는 cpu, memory로 구성되어있음 i/o device는 디스크, 모니터, 복합기, 마우스, 키보드 등 memory 메모리는 cpu의 작업공간 disk 아웃풋과 인풋의 역할을 수행 i/o 각 장치는 디바이스 컨트롤러가 있어서 이것이 작은 cpu역할을 함 cpu와 디스크의 성능차이는 많아 난다. cpu는 메모리에서 읽었다 실행 읽었다 실행하는 역할 cpu에는 작은 메모리공간이 있는데 이것을 레지스터라고 부름 운영체제인지 사용자 프로그램인지 구분해주는게 메이드 빗 interrupt line이 존재 다음 실행을 메모리에서 작동하는데 i/o에서 요청한 걸 이 라인에서 실행해줌 메모리에서만 작업하는 것이 아니라 다른 장치와 소통해줌 cpu에서 필요한걸 디스크 컨트롤에 요청함 그동안 cpu는 메모리..