| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- s
- 알기쉬운 알고리즘
- stream
- Stack
- 윤성우 열혈자료구조
- list 컬렉션
- 윤성우의 열혈 자료구조
- R
- Graph
- 이것이 자바다
- Algorithm
- JSON
- Selection Sorting
- coding test
- Serialization
- insertion sort
- 이스케이프 문자
- C programming
- 혼자 공부하는 C언어
- datastructure
- C 언어 코딩 도장
- 메모리구조
- buffer
- Today
- Total
목록Computer Science (90)
Engineering Note
Object Oriented Programming(객체 지향 프로그래밍) 단어 그대로 객체 지향적으로 프로그래밍을 한다는 뜻이다. 프로그래밍이란 생각, 명령어의 나열이다. 그런데 객체 지향이라는 뜻은 무엇일까? 프로그래밍을 할때 Object, 객체를 중심으로 프로그래밍한다는 말이다. 즉, 이 세상은 객체(object)로 이루어져 있고, 객체를 중심으로 프로그램을 설계하겠다는 것이다. 이 세상에는 수 많은 사람, 개인이 존재한다. 모두 객체이다. 사람에게 객체라고 하면 기분나쁘게 들릴 수도 있으나, 창조자(개발자)의 입장에서는 객체이다. 기분이 나쁘면 개체라고 이해해도 된다. 그런데 이렇게 전부 다른 특징의 객체를 매번 생성하기 보다는 객체들을 분류(Class)해서 생성하는 방식으로 프로그래밍을 한다면 개..
Dynamic Programming Dynamic Programming은 greedy algorithm과 마찬가지로 최적화 문제를 해결하는 알고리즘이다. 최적화 문제란 가능한 해들 중에서 가장 좋은(최대 또는 최소)해를 찾는 문제이다. 다이나믹 프로그래밍은 입력 크기가 작은 부분문제들을 모두 해결한 후에 그 해들을 이용하여 보다 큰 크기의 부분문제들을 해결하여, 최종적으로 원래 주어진 입력의 문제를 해결하는 알고리즘이다. 이때 부분문제들은 다음 문제를 해결할 때 기록해두어 필요할 때 다시 이용하는 메모이제이션 기법을 이용한다. Algorithm 문제풀이 팁 작은 문제부터 해결하기 문제에 주어진 조건을 잘 읽고 마지막에 조건을 붙이는 경우로 생각해보기, 이렇게 하면 메모이제이션을 생각하기가 조금 수월함 마..
하드디스크 -파일시스템 네트워크 -소켓 CPU- task, process 각각의 하드디스크에서는 추상화한 단위로 업무가 수행되는데 이러한 것들을 OS가 관리한다. 이러한 추상화단계각 진행 되었기 때문에 OS를 통해 각각의 H/W가 호환되게 할 수 있다. 어플리케이션들은 시스템 콜을 통해서 운영체제에 하드디스크 CPU의 접근하는데 이것이 Device driver가 필요한 이유다.
Object Oriented 객체지향의 기본 개념은 원자 세계를 SW 비트세계로 옮기기 위해 실제 세계를 객체(사물)을 중심으로 바라보는 것이다. 다시 말하면 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.'라는 관점이다. 실제 사물의 속상과 기능을 분석한 다음, 데이터(변수)와 메서드(함수)로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같은 가상 세계를 구현하는 것이다. Object Oriented Programming 현실 속에 존재하는 사물을 최대한 유사하게 모방해 소프트웨어 내부로 옮겨오는 작업 Object 객체, 현실 세계에 존재하는 사물 또는 개념에 대한 추상화
도커 : 운영체제 수준의 가상화 쿠버네티스 : swap midterm scheduler 파일시스템은 경로단위로 계층구조로 관리 블록스토리지 격자문의로 파일스토리지에는 운영체제 설치 할 수 없음 블록단위로 설치되어 있어야 운영체제를 설치할 수 있음 ------------------------------------------------------------------------- 페이징 테이블 쿠버네티스 : 도커에서 필요한 부분을 컨테이너 관리를 자동화 시켜주는 것 shared memory, IPC CPU 코어 - ALU 레티스터 컨트롤러 멀티 프로세싱으로 하다가 멀티 쓰레딩으로 넘어감 사우스 브릿지, 노스 브릿지
dijkstra 최단경로 알고리즘 그래프에서 여러개의 노드가 있을 때, 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단경로를 구해주는 알고리즘 '음의 간선'이 없을 때 정상적으로 동작 현실세계에서의 길이 음의 간선으로 표현되지 않으므로 다익스트라 알고리즘은 실제로 GPX 소프트웨어의 기본 알고리즘을 채택되곤 한다. 현재 알고 있는 최단거리 정보를 가지고 최단거리표에 기록하고 그리디한 방법으로 최단거리이동 가능한 곳으로 이동해서 더 짧은 방법이 있으면 표를 갱신하는 방법이 핵심이다. 알고리즘의 원리 출발 노드를 설정한다. 출발노드까지의 거리는 0으로 초기화 한다. 최단 거리 테이블을 초기화한다. 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드를 선택한다. 해당 노드를 거쳐 다른..
https://velog.io/@codemcd/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-9.-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EB%8F%99%EA%B8%B0%ED%99%94-2 [운영체제(OS)] 9. 프로세스 동기화 2 1. 전통적 동기화 예제(Classical Synchronization Problems) 1.1 Producer-Consumer Problem 생산자-소비자 문제는 생산자가 데이터를 생산하면 소비자는 그 데이터를 소비하는 형태의 문제이다. 컴퓨터 환경에서 velog.io https://lipcoder.tistory.com/category/OS?page=5
[김기원(KIWON)] [2:09 PM] 운영체제에서 중요한 점 메모리 관리 네트워크 관리 파일시스템(FAT) 관리 프로세스 관리 IO 디바이스 관리 시스템 콜 [김기원(KIWON)] [2:20 PM] cpu 스케줄링 관리, 메모리 관리 세그멘테이션, 페이징, [김기원(KIWON)] [2:20 PM] 메모리 싱크로나이제이션 [김기원(KIWON)] [2:24 PM] 미드텀 스케줄러 [김기원(KIWON)] [2:24 PM] (Translation Lookaside Buffer, TLB [김기원(KIWON)] [2:25 PM] 캐시히트 캐시미스