본문 바로가기

전체 글

(8)
[IT 개념 정리] OS - 02. 프로세스 & 스케줄링 프로세스란? 프로그램의 명령어와 정적 데이터가 메모리에 적재되어 실행 중인 프로그램을 의미한다. 즉 프로그램의 인스턴스로 운영 체제의 가장 기본적인 실행 단위이다. 프로세스의 메모리 구조 프로세스의 주소 공간은 Text, Data, Heap, Stack영역으로 구성되어있다. 지역변수나 함수 호출과 같은 것은 스택영역에 할당되고, 동적인 데이터는 힙 영역에 할당이 된다. 프로세스의 상태 프로세스는 총 5개의 상태(New, Ready, Running, Waiting, Terminated) 중 하나의 상태로 존재한다. 1. 프로그램의 실행을 위해 OS에 요청하면 New 상태로 생성된다. 2. 이후 프로세스가 실행 가능한 상태가 되면 Ready 상태가 된다. 3. CPU 스케줄러에 의해 실행 순서가 오면 Run..
[IT 개념 정리] OS - 01. 운영체제 란 운영체제란? 사용자 입장에서 응용 소프트웨어를 사용을 용이하게 하는 환경을 제공하며, 시스템의 입장에서 하드웨어를 효율적으로 사용하기 위해 자원 할당과 제어를 해주는 시스템 소프트웨어다. 운영체제의 개요 User Interface - 유저 또는 사용자가 직접적으로 사용하는 인터페이스로 GUI, CUI, Batch로 나뉜다. System calls - 운영체제의 각 서비스를 사용을 위해 시스템 콜을 받는다. 운영체제의 주요 목적과 역할 - 사용자와 시스템의 편리성을 높여야 한다. - 시스템의 성능을 효율적으로 사용 해야한다 : 처리량, 지연/응답시간, 신뢰도, 사용가능도 - 제어 서비스를 향상 시켜야 한다. 운영체제의 주 기능 학교 수업중에 운영체제 강의에서 들었던 기억으로 운영체제는 크게 프로세스관리, ..
[IT 개념 정리] 시간/공간 복잡도 & 정렬 알고리즘 정렬 알고리즘에 대해서 정리 하기전 자료구조에 이어 알고리즘을 하게 되면 가장 많이 사용하는 개념인 '시간복잡도 / 공간복잡도'에 대해서 먼저 정리를 해보려고 한다. 1. 시간 복잡도 / 공간 복잡도 시간 / 공간 복잡도는 왜 구하는 것인가? 알고리즘의 성능을 분석하기 위해서 사용하는 개념이다. 데이터 양이 많아지고 처리해야하는 방식의 변화에 따라 많은 시간과 공간이 쓰이게 되면서 해당 데이터 처리에 최적의 알고리즘을 사용하기 위해 사용 된다. 기본적으로 동일한 하드웨어에서 사용 된다는 가정하에 시간 / 공간 복잡도를 계산 한다. 시간 복잡도(Time Complexity) $T(n)$ : 알고리즘을 수행하는데 연산(산술, 대입, 비교, 이동)이 몇번 이뤄지는가? 빅오 표기법 : 시간 복잡도를 계산할때 상..
[2020.02.23] 04. 2월의 첫글 어느새 일상에 대해 글을 쓴 지가 1달이 다 되어간다. 2월은 상상 이상으로 많은 것들을 하면서 글을 쓰는 여유로운 시간이 나오질 않았다고 변명 아닌 변명으로 글을 시작해본다. 2월 동안 한 것과 앞으로 한 것을 정리하면서 2월의 내 이야기를 적어보면 - 1월에 신청한 기타 수업을 1달 만에 멈췄다. - 인생 첫 PT를 시작 했다. - 몇 년간 비슷한 일을 하다 보니 까먹었던 전공 지식을 다시 정리하는 시간을 가져보기로 했다. - 2월에도 여전히 요리 수업은 계속된다. - 그 외 다양한 것들과 앞으로의 일상은? 기타 수업과 인생 첫 PT 1월 포스팅에서 언급했듯이 살이 너무 많이 쪘다. 심지어 작년에 받은 건강검진에서도 좋지 않은 점들이 많이 나오게 되어 진짜 운동을 제대로 해보기로 마음먹었다. 집 앞 ..
[IT 개념 정리] 자료구조 1. 자료구조란? 사전적인 의미 - 자료의 집합으로 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것. 목적 - 자료를 저장, 관리를 더 효율적으로 하기 위함으로 실행시간의 단축(시간복잡도)와 메모리 용량의 절약(공간복잡도)을 목적으로 자료구조를 선택한다. 즉, 컴퓨터에서 사용항 자료를 효율적으로 관리하고 구조화 하기 위한 작업이다. 2. 자료구조의 종류 자료구조는 자료의 구성에 따라 순차적으로 나열하는 선형구조, 비 순차적으로 나열하는 비선형구조로 나뉜다. 선형구조 - 선형리스트, 연결리스트, 스택, 큐, 데크 비선형구조 - 트리, 그래프 3. 선형구조 선형리스트 : 연속되는 기억장소에 저장되는 리스트 ≒ 배열(Array) 접..
[2020.01.27] 03. 1월을 마치며 1월을 끝마치며. 1월이 거의 끝이 났다. 일단, 매주 글 하나씩 쓰는 목표는 3주 차에 쓰지 못하면서 실패했다. 7일에 쓴 글로부터 20일이 지나 지금 다시 글을 쓰면서 내가 했던 일들을 되돌아보면, 작심삼일이라는 말처럼 신년 첫 목표는 시원하게 날려먹었다는 생각과 함께 생각보다 20일 동안 참 이것저것 많이 했다는 것이다. - 나는 블로그를 왜 시작했는지, 그리고 왜 글을 쓰려고 하는지 생각 해본 것. - 5년만에 다시 배우기 시작한 기타와 3년 만에 다시 타본 보드를 아직 까먹지 않았다는 것. - 처음으로 전문적으로 배우기 시작한 요리는 '요리를 본격적으로 배워볼까?'라는 생각을 들게 해 준 것. - 작은 습관 하나 만드는 것이 생각보다 어렵다는 점, 그리고 지금의 나의 습관들은 언제 생겨났을까 한..
[2020.01.08] 02. 1월의 첫 주 1월의 첫 주 첫 글을 쓰고 1주일이 지나서 겨우 다시 두 번째 글을 쓴다. 우선 아쉽게도 매주 주말마다 글을 쓰기로한 마음속으로 생각했던 목표가 첫 주 만에 깨졌다. 작년에 못한 송년회를 대신해 회사 동기들과 2일에 먹은 굴이 잘못되었는지 며칠간 장염으로 많이 고생했다. ㅠ.ㅠ 지금까지 굴을 먹어도 이런 적이 없었는데 아홉수가 시작되려고 하는 건지 액땜을 하는 건지 연초부터 참 별일인가 싶었다. 병원을 가서 약을 타서 며칠을 먹으니 겨우 좀 괜찮아져 오늘 두 번째 글을 쓰려고 한다. 아픈 덕분 인지는 몰라도 일주일 동안 첫 3달을 어떻게 보낼지 하나 하나 생각해 보았다. 첫 글에 썼듯이 1 분기에는 이 세가지는 꼭 해볼 예정이다. 기타 학원을 등록 하자. 올해는 일단 질러보고 시작이라도 해보자는 모토로..
[2020.01.01] 01. 블로그를 시작하면서 새해 첫날 처음으로 블로그를 시작하면서. 이렇게 블로그를 시작하게 된 것은, 2019년 중순부터 든 생각에서 비롯되었다. 그것은 나의 하나뿐인 인생에 대해서 겪는 다양한 스토리들을 글로 남겨보고 싶다는 생각이었다. 시작이 반이라는 말처럼 생각으로만 남겨진 것들을 올해는 하나씩 실천해 보기로 했다. 그중 첫 번째가 바로, 나의 이야기를 기록하는 것이다. 사실 이 첫 글은 아이러니하게 새해 첫날 작성되는 글임에도 불구하고 첫날의 일들에 대해서는 하나도 적지 않을 것 같다. 첫 글은 2019년 동안의 나의 기억 속에만 남겨진 스토리를 정리하는 글임과 동시에 2020년을, 나의 20대 마지막 한 해를 어떻게 지내볼지 다양한 계획을 적어두려고 한다. (분명 조금 후회할 날이 올 것 같지만 일단 적어두고 보자!) ..