전체 글46 알고리즘 공부 사이트 국내 사이트 백준 프로그래머스 SW Academy 해외 사이트 해커랭크 리트코드 코드포스 2019. 3. 3. [OS] 프로세스란 무엇일까? 시분할 시스템 다중 프로그래밍을 기본 여러 개의 작업들이 메모리에 있고 CPU는 이들 사이를 오가며 실행 프로세스란? 수행 중인 프로그램(A program in execution) 프로그램, 레지스터, 스택 등의 데이터와, PC 값 등으로 표현되어 커널에 등록되어 있는 것을 의미 실행을 위해 필요한 환경을 시스템으로 부여받은 상태 프로세스 제어 블록이란? PCB(Process Control Block) 프로세스에 대한 정보를 담고 있는 테이블 모양의 자료구조 프로세스의 상태(Process State)와 변화 생성(Created) 상태 준비(Ready) 상태 CPU만 주어지면 실행할 준비가 되어 있는 상태 준비 상태의 프로세스들의 실행 순서를 결정해 주는 것을 CPU 스케쥴링이라고 한다. 준비 상태에 있는.. 2019. 2. 13. OS? Yes! 누워서 보는 운영체제 이야기 "OS? Yes! 누워서 보는 운영체제 이야기"-김주균 저 로 틈틈히 운영체제 공부해야겠다. Chapter3. 프로세스와 스레드 3.1 프로세스란 무엇일까? 3.1.1 프로세스 제어 블록 3.1.2 프로세스의 상태와 변화 3.2 스레드란? 3.2.1 스레드에 대해 조금 더. 3.2.2 스레드의 상태와 동기화 3.2.3 스레드의 종류 2019. 2. 13. [OS] 쓰레드(Thread) Thread의 장점은? Thread Creation, termination, switching 그리고 Thread 간의 communication 비용이 덜 든다. Creation : process 생성보다 약 10배정도 빠르다 Termination : I/O devices와 memory를 release 시킬 필요가 없다. Switching: 프로세스는 PCB를 저장하고, 새로운 프로세스의 저장된 상태를 불러와야한다. 그리고 메모리에서 페이지를 관리하여야 하기 때문에 비용이 많이 든다. Communication : 프로세스의 경우 프로세스간 통신을 할 때 kernel의 간섭이 필요하다. 그러나 Thread는 shard memory를 통해 kernel 없이 통신할 수 있다. 2018. 4. 18. [C++] 문자, 문자열 비교 string str = "abc"; if(str[0] == 'a') cout 2017. 10. 24. char -> int 변환 1. char -> int문자 '1'을 숫자 1로 표현하고 싶을 때int tmp = s[i] - '0'; ASCII code로 표현하고 싶을 때char a = 'a'; int ia = (int)a; 2017. 10. 24. c++ string ,int 변환 1. int -> string#include std::string s = std::to_string(42); 2. string -> intc++11 부터 가능하다- stoi(string) 그 이외 버전에서는, string s; int a = atoi(s.c_str()); 2017. 10. 24. 알고리즘 평가 기준 알고리즘을 평가하는 기준* 시간 : 최대한 적은 시간이 걸려야한다.* 공간 : 적은 용량의 메모리를 사용하여야한다. 두 기준은 서로 상충하는 경우가 많다요즘은 메모리가 대부분 충분하기 때문에 시간을 우선시한다. 알고리즘 수행 시간 측정반복문이 수행 시간에 큰 부분을 차지한다. - 선형 시간 알고리즘 : 좋음 - 선형 이하 시간 알고리즘 : 입력의 크기가 커지는 것보다 수행 시간이 느리게 증강하는 알고리즘 - 다항 시간 알고리즘 : 변수 N과 N2, N의 거듭제곱들의 선형 결합으로 이루어진 식 - 지수 시간: 가장 큰 수행 시간 중 하나 - 소인수 분해의 수행시간입력의 값이 커질수록 필요한 메모리 공간도 증가. 입력이 차지하는 비트 수에 따라 수행 시간이 증가 시간 복잡도알고리즘 수행 시간의 기준. 기본적.. 2017. 6. 30. 알고리즘 시작 - 문제 해결 전략 문제 해결 개관문제 해결 능력을 기르기 위해 단순히 문제를 푸는 과정만을 반복하는 것이 아니라, 문제를 해결해가는 과정을 세분화하여 부분 부분 부족한 부분을 채워 나가는 형식이 되어야 한다. 문제 해결 과정 네 단계(From 어떻게 문제를 풀 것인가)1. 문제를 이해한다.2. 어떻게 풀지 계획을 세운다.3. 계획을 수행해서 문제를 해결한다.4. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다. 여섯 단계 문제 해결 알고리즘1. 문제를 읽고 이해한다.문제를 정확히 이해하는 것이 중요하다.2. 문제를 익숙한 용어로 재정의한다.3. 어떻게 해결할지 계획을 세운다4. 계획을 검증한다.5. 프로그램으로 구현한다.6. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다 문제 해결 전략1. 직관과 체계.. 2017. 6. 4. 이전 1 2 3 4 5 6 다음