OS: 177개의 글
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/BtQSK/btq34g7jOc8/mMFuq4bbeiJ2KGOLqKscD1/img.png)
들어가며 우분투(ubuntu)에도 화면 분할이 기본으로 있는데, Mac에는 왜 없는거야? Mac App Store에서 마그넷이라는 화면 분할 앱이 있지만 유료인게 함정 spectacleapp은 opensoure로 github에 코드도 공개가 되어 있다. 다운로드 링크 https://www.spectacleapp.com/ github & keyboard-shortcuts https://github.com/eczarny/spectacle#keyboard-shortcuts
들어가며 mac에서scala를 설치하는 방법에 대해서 설명을 한다. scala는 java를 기반으로 해서 미리 java를 설치를 해야한다. dependency를 위해 build tool로 gradle을 설치했다. 설치를 완료한 후에는 환경변수를 설정해주면 끝 Java 설치하기 $ brew install cask install java Scala 설치하기 $ brew install scala Grade 설치하기 https://gradle.org/ 에서 다운로드가 가능하다. $ unzip grade-3.1-all.zip 환경변수 세팅하기 ~/.bash_profile에 아래와 같이 입력하자 export JAVA_HOME= export GRADLE_HOME=
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/bc30RE/btq3VOialoQ/VYnTPeeNZwqfGtjxMIpsyk/img.jpg)
들어가며 맥OS에서는 기본 터미널을 사용을 해도 되지만, 창 분할, 멀티 탭 등, 기존 터미널보다 향상된 터미널을 사용할 수 있다. 보통 나는 리눅스에서 tmux + tilda를 함께 사용했는데, 사람들은 mac에서는 대부분 iTerm을 사용하고 있었다. iTerm2역시 tmux와 유사한 기능을 제공한다. 단축키를 외워두면 그 누구보다 빠르게 작업을 수월하게 할 수 있으니 아래 단축키 정도는 외워놓고, 사용하자. 다운로드 다운로드 받는 공식사이트는 아래와 같다. 아래 사이트에서 다운로드 받은뒤에 보통 설치하는 어플리케이션처럼 설치하면 끝 https://www.iterm2.com/ iTerm2 단축키 정리 새창 - Command + n 새 탭 - Command + t 탭 이동 Command + 번호, Co..
디스크의 남은 용량 확인 df -k : 킬로바이트 단위로 현재 남은 용량을 확인 df -m : 메가바이트 단위로 남은 용량을 왁인 df -h : 보기 좋게 보여줌 df . : 현재 디렉토리가 포함된 파티션의 남은 용량을 확인 > df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1s1 466Gi 10Gi 379Gi 3% 487648 4881965192 0% / devfs 190Ki 190Ki 0Bi 100% 659 0 100% /dev /dev/disk1s2 466Gi 73Gi 379Gi 17% 1142296 4881310544 0% /System/Volumes/Data /dev/disk1s5 466Gi 2.0..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/cWeQqw/btq3q6Dw3o2/6yZ454ItdAD742fYdqs8O1/img.jpg)
운영체제 - 병행 프로세스란? 이전 포스팅에서 병행 프로세스에 대해 간단히 개념을 다루어보았는데, 병행 프로세스에서 꼭 해결해야할 것 중 하나가 공유 자원에 대한 상호배제(동기화)였다. 오늘은 이런 상호배제에 대한 내용을 다루어볼 것이다. 상호배제의 개념 상호배제는 병행 프로세스에서 프로세스 하나가 공유 자원을 사용할 때 다른 프로세스들이 동일한 일을 할 수 없도록 하는 방법이다. 즉, 공유 자원에 있는 데이터에 접근하는 다른 프로세스를 이미 사용중인 프로세스 하나가 해당 데이터에 접근할 수 없게 하는 것을 상호배제(Mutual exclustion,Mutex)라고 한다. 물론 읽기 연산은 공유 데이터에 동시에 접근해도 문제가 발생하지 않지만, 변수나 파일은 프로세스 별로 하나씩 차례로 읽거나 쓰도록 해야..
운영체제 - 프로세스(Process)란? 프로세스상태,Context Switching 운영체제 - 쓰레드란?(Thread,사용자 수준 쓰레드, 커널 수준 쓰레드, 혼합형 쓰레드) 컴퓨터는 프로그램 작업을 수행하는 데 사용할 수 있는 여러 자원으로 구성된다. 예를 들면, 명령을 실행하는 프로세서, 데이터를 저장하는 메인 메모리, 프로세서의 임시 저장소인 레지스터, 프로세서와 메인 메모리 사이의 속도 차를 조절해주는 캐시 등이 있다. 이 중에서 메모리 같은 자원은 공유 영역을 모든 프로세스가 동시에 공유한다. 즉, 이 메모리 자원은 공유 영역을 프로세스들이 병렬로 사용한다. 반면에 입출력장치 일부나 프로세서는 한 번에 프로세스 하나만 사용할 수 있는 공유자원이다. 프로세서 하나는 한 번에 프로세스 하나만 실..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/cVHJwq/btq3n8hrf6y/oihDw6x4czAcDEZd45lRr0/img.jpg)
운영체제 - 프로세스(Process)란? 프로세스상태,Context Switching 쓰레드(Thread)란 간단히 말해 프로세스 내에서 실행되는 실행 단위이다. 프로세스는 이러한 쓰레드를 한 개 이상으로 나눌 수 있다. 쓰레드는 프로그램 카운터와 스택 포인터 등을 비롯한 쓰레드 실행 환경 정보(Context 정보), 지역 데이터, 스택을 독립적으로 가지면서 코드, 전역 데이터, 힙을 다른 쓰레드와 공유한다. 그림을 보면 프로세스 내에서 쓰레드는 별도의 Stack(+ 스레드 실행 환경 정보, 지역데이터, 레지스터 등)을 할당받고 Code, Data, Heap 영역은 같은 프로세스 내의 다른 쓰레드와 공유한다. 프로세스 하나에 포함된 쓰레드들은 공동의 목적을 달성하려고 병렬로 수행한다. 이러한 쓰레드를 이..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/m10Ju/btq3ndqmASB/Mm9OMs0pC0sxtqidZWNVik/img.jpg)
프로세스의 개념 프로세스는 다양한 정의가 있다. 실행 중인 프로그램 비동기적 행위 실행 중인 프로시저 실행 중인 프로시저의 제어 추적 운영체제에 들어 있는 프로세스 제어 블록(PCB) 프로세서에 할당하여 실행할 수 있는 개체 디스패치가 가능한 대상 이 중 가장 일반적인 프로세스 정의는 "실행 중인 프로그램"이다. 프로그램이 실행 중이라는 의미는 디스크에 있던 프로그램을 메모리에 적재하여 운영체제의 제어를 받는 상태가 되었다는 것이다. 이는 자신만의 메모리 영역(주소 공간)이 있음을 의미한다. 프로세스가 실행 중인 프로그램이 되려면 프로세서 점유 시간, 메모리, 파일, 입출력장치 같은 자원이 필요한데, 프로세스를 생성하거나 실행할 때 이 자원을 할당한다. 그리고 프로세스는 현재의 활동 상태를 나타내는 프로..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/cnYbNM/btq3nCDo7Jl/YO1KHbo52XdJWcEgVQ7Kp0/img.jpg)
컴퓨터 시스템은 데이터를 처리하는 물리적인 기계장치인 하드웨어와 어떤 작업을 지시하는 명령어로 작성한 프로그램인 소프트웨어로 구성된다. 운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어이다. 그러므로 운영체제를 이해하려면 먼저 컴퓨터 하드웨어에 대해 아는 것이 중요하다. 이번 포스팅에서는 하드웨어를 하나하나 깊숙히 알아간다기 보다는 어떠한 하드웨어가 있고 해당 하드웨어가 어떻게 구성되며 어떠한 역할을 하는지 정도만 알아보는 포스팅이 될듯하다. 컴퓨터 하드웨어는 크게 프로세서(CPU), 메모리(기억장치,RAM), 주변장치로 구성되고, 이들은 시스템 버스로 연결한다. 1.프로세서(CPU) 프로세서는 컴퓨터 하드웨어에 부착한 모든 장치의 동작을 제어하고 명령을 실행한다. 중앙처리장치(Central Process..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/dVFZSy/btq3ncrp89d/YVBKoy1KbqBMq5VItafG8K/img.png)
실습은 Mac OS 환경에서 진행하였습니다. ssh로 원격서버에 접속할 때 매번 비밀번호 치는 것은 귀찮은 작업입니다. 그리고 Git과 같이 버전관리 시스템도 ssh로 원격접속하는 경우가 많은데 이때도 매번 비밀번호를 쳐줘야하는 귀찮은 작업이 있기에 이번에 알아볼 내용은 비밀번호없이 ssh 접속하는 방법입니다. 모두 3번의 엔터를 치고 키를 생성하였습니다. 첫번째 엔터는 키 파일을 만들겠냐, 두번째,세번째는 키파일의 암호를 만들어주는 것인데 필자는 따로 암호를 만들지 않을 것임으로 모두 엔터를 쳐 넘어갔습니다. 이제 /home/.ssh에 두개의 파일이 생성되었을 텐데, id_rsa는 우리가 사용할 비밀키입니다. 절대로 유출되어서는 안되는 파일입니다. 그리고 id_rsa.pub은 원격 접속할 서버에서 사용..