본문 바로가기

컴퓨터 공학11

키패드 누르기(프로그래머스) 문제링크 : https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 난이도 : 레벨 1 이 문제는 구현력 기르기에 적합한 문제라고 생각한다. 왼손과 오른손이 누를 수 있는 번호가 정해져 있다. 왼손은 1,4,7 오른손은 3,6,9 그러면 2,5,8,0은 ??? 아쉽게도 2,5,8,0은 왼손과 오른손 모두 누.. 2022. 3. 19.
SSH 터널링(포트포워딩)을 해보자 Kali가 Win7과 통신을 하려고 한다. 그런데 보안상 Win7 에서는 SSH서버인 CentOS 에서 오는 패킷만 받는다고 한다. 이때, Kali에서 SSH 터널링을 이용하여 CentOS에 접속하여 Win7과 통신을 해보자. 참고로 이 과정은 Putty의 SSH 원격접속과 같은 원리이다. [환경 설정] 1. VM을 이용하여 3개의 OS를 구동 후 네트워크 설정을 모두 Host-Only로 설정한다. (∵ VM끼리만 통신) 2. Win7 에 netcat 프로그램을 다운로드 한다. (다운로드 주소 : eternallybored.org/misc/netcat/) 저는 1.11버전 사용했고 로컬에서 다운로드 한 뒤 Win7에 드래그 앤 드롭하면 됩니다. ※ Kali랑 CentOS에는 netcat이 있습니다. 3... 2020. 9. 13.
교착상태(Dead lock) 교착상태(Dead lock)란? 한정된 컴퓨터 자원을 여러 프로세스가 사용하려고 할 경우 발생한다. 프로세스는 특성상 자신의 업무처리를 위하여 필히 운영체제에게 자원을 요청하게 되는데 이때 프로세스의 상태는 대기상태로 전환된다. 만약 여러 프로세스가 서로 같은 자원을 사용하려고 한다면? 당연하게도 어떤 프로세스는 자원을 사용하지 못하여 대기상태로 들어가게 될 것이다. 이때, 대기상태의 프로세스가 더이상 실행상태로 변경될 수 없을 경우에 이것을 교착상태라고 부른다. [교착상태의 필요조건 4가지] 1. Mutual exclusion(상호 배제) > 오직 하나의 프로세스만이 자원을 사용할 수 있다. 2. Hold and Wait(점유와 대기) > 자원을 점유 중인 프로세스가 또다른 자원을 사용하기 위하여 대기.. 2020. 7. 13.
운영체제의 5가지 특징 및 부트스트랩 로더(Bootstrap loader) 운영체제에는 5가지의 특징이 있다. 1. Simple structure > 모듈화 및 계층화가 되어있지 않은 원시 OS의 구조로, User 프로그램의 하드웨어 접근이 가능하였다. 현대의 OS는 복잡한 구조로 설계되어 있으므로 해당 구조는 사용되지 않는다. 2. Layered approach > OS를 계층화하여(Level 0 ~ N) 각 계층별로 역할을 분리한 구조로, 상위계층은 하위계층의 기능을 사용할 수 있다. 디버깅과 프로그램 구현에 있어 용이하다. 그 이유는 프로그래머가 하위 계층의 내용을 전혀 신경쓰지 않아도 되기 때문이다. 3. Microkernel > 기존의 Kernel 기능(프로세스, 메모리, 파일시스템, 입출력장치 관리)에서 핵심인 프로세스 기능만 남겨두고 나머지 기능들은 User 레벨로.. 2020. 4. 24.