# Program

리눅스 입문 04
📄 Program VS Process Program: 디스크에 저장되어 있는 정적인 개체 Process: 실행 중인 program. program 실행 시 메모리에 올라가는 동적인 개체 📄 Process PID 프로세스에 OS 가 관리를 위해 할당함 PPID 부모 자식 간의 관계를 확인할 수 있는 번호 init 부팅 시 가장 먼저 시작하는 프로세스 (system.d) 데몬 프로세스 백그라운드에서 돌아가는 프로세스 고아 프로세스 프로세스의 작업이 종료되면 부모 프로세스로도아가는데, 부모 프로세스가 먼저 종료되면 자원을 반환하고 돌아갈 곳이 없어짐 좀비 프로세스 (defunct process) 이미 종료한 상태지만, 자원을 반환하지 못한 상태의 프로세스 (자원 반환이 되지 않으면 다른 프로세스는 작업을 하지 못함) kill 로 죽이거나 시스템 리부트.. 명령어 ps- ef

02.컴퓨터의 외부 및 내부 IP확인
Q. 파이썬으로 컴퓨터의 내부 IP를 확인하는 코드를 작성해줘 A. > Q.파이썬으로 컴퓨터의 외부 IP를 확인하는 코드를 작성해줘 A. >Q.ModuleNotFoundError: No module named 'requests' ,오류가 있어. 외부 IP를 확인하는 다른 코드를 작성해줘 (이 질문은, request 라이브러리를 설치하면 해결됩니다.) A. >Q.원본에서 가져오기 "requests"을(를) 확인할 수 없습니다. 오류가 있어 A. >Q.파이썬으로 컴퓨터의 내부 및 외부 IP를 한 번에 출력하는 코드를 작성해줘 A.

운영체제란?
운영체제란? 컴퓨터의 정보 처리 방식 정보의 최소 단위 bit binary digit 정보의 처리 정보의 상태 변환 0 → 1, 1 → 0 부울 대수 Boolean Algebra NOT, AND, OR 트랜지스터 논리 게이트 NOT, AND, OR, XOR, NAND, NOR 논리 회로 IC, LSI, VLSI, ULSI, SoC 정보의 저장과 전송 플립-플롭, 데이터 버스, RF 무선 사칙연산 덧셈 반가산기, 전가산기 뺄셈 2의 보수 표현법 곱셈 나눗셈 덧셈과 뺄셈의 반복 범용성 Universality NOT, AND, OR 게이트만으로 모든 계산 가능 NAND 게이트만으로 모든 계산 가능 계산 가능성 Computability Turing-computable 튜링

JAVA thread (230705)
1. 아래의 용어에 대하여 설명하시오. 프로그램 > - 컴퓨터에서 실행될 수 있는 명령어들의 모음. 예로 워드프로세서 프로그램, 웹 브라우저, 게임 등이 있다. 프로세스 > - 프로그램이 메모리에 올라와 있는 상태. 실행 중인 프로그램 = 프로세스이다. 운영체제에 의해 관리되는 독립적인 작업 단위 쓰레드 > - 하나의 프로세스 내에서 실행되는 작업의 단위. 쓰레드는 프로세스의 자원을 공유하면서 병렬적으로 실행한다. 프로세스 내에서 메모리 공간을 공유하기 때문에 데이터 공유가 가능하다. 동시성을 구현하기 위해 사용. 멀티 프로세스 > - 여러 개의 프로세스가 동시에 실행되는 것. 각각의 프로세스는 독립적으로 실행되며, 각각 별도의 메모리 공간 보유. 멀티 프로세스는 작업을 병렬적으로 처리하거나, 안정성을 향상시키기 위해 사용될 수 있으나 프로세스 간의 통신 및 자원 공유를 위해선 따로 조치를 해야한다. 멀티 쓰레드 > - 하나의 프로세스 내에서

[OS] 8. Process State?
1. Process, Program이란 Program? > 하드디스크 등의 저장 매체에 저장, 실행 파일의 형태 Process? > 프로그램이 메모리에 적재되어 있는 상태, 즉 실행 중인 프로그램 2. Process control block > 프로세스에 관한 정보를 저장하는 구조체 프로세스 당 하나씩 존재 프로세스가 생성될 때 만들어지고 종료되면 삭제 커널에 의해 생성, 저장, 관리 출저 : Operating System Concepts - 10th edition 3. Diagram of Process State 
[Computer Lesson] Process(1) - What is Process?
이번 게시글에서는 프로세스와 멀티 프로세스 그리고 스레드와 멀티스레드 관련 이야기의 첫 시작인 프로세스란 무엇인가에 대해서 다두려고 합니다. 프로그래밍을 배우지 않은 사람도 프로세스에 대해서는 한 두번은 들어봤을 법하고 게임을 하는 청소년들도 알게 모르게 CTRL + ALT + DEL 버튼을 누르면서 작업 관리자에서 하고 있던 작업을 강제 중단해본 경험이 한 두번은 있을 것이다. 오늘은 이 게시글에서 그런 프로세스에 관련된 지식을 잠깐 다루고 다음 게시글에서는 멀티프로세스를 그리고 그 이후에는 스레드와 멀티스레딩에 대해서 다루게 될 것 같다. ✍ Process란? > 프로세스는 컴퓨터에서 실행 중인 프로그램의 인스턴스(instance) 또는 실체(entity)를 의미합니다. 즉, 컴퓨터에서

친구 프로그램 만들어주기 (with C)
프로그래밍을 할 줄 모르는 친구가 힘들어 하는 일이 있었습니다. 회사에 매 주 복사 붙여넣기를 해야 하는 반복 작업이 있었던 것입니다. 스스로 코딩을 배워서 하려고 하길래, 엄청난 고난😇이 보였습니다. 너무 시간이 오래 걸릴 것 같아서 도와주었습니다. 이 글에서 그 것을 해결한 과정과 느낀 것을 적어보려고 합니다. 비전공자이지만 나름 C언어와 linux 명령어를 공부한 적이 있습니다🔥 > 이 글에서는 프로그램을 만듭니다. > C File에서 문자를 추출해, 새로운 C File을 생성해줄 것입니다. 결과와 과정을 아래의 깃허브에 정리해두었습니다. https://github.com/keinn51/extract_string ⭐️ 메인 로직을 직접 실행해보실 수도 있습니다! ⭐️ 코드 정리가 안 되어 있는 점 참고 부탁드립니다ㅎㅎ https://onlinegdb.com/qqqBSACYF ❓ 무엇을 어떻게 이런 작동을 하는 프로그램을 원한다고 말

Program vs Process vs Thread 차이점
컴퓨터공학 (Computer Science Engineering)을 전공한 사람들에게 프로그램과 프로세스 그리고 스레드는 매우 친숙한 개념이다. 하지만 비전공자 개발자로 시작하는 사람들에게는 다소 추상적이고 혼란스러운 개념이 될 수 있다. 이러한 이유로 설명할 때 사전적 의미 보다는 보다 직관적인 관점에서 설명하려고 노력하였다. 1. 프로그램 VS 프로세스와 스레드 차이점? 프로그램 vs 프로세스 스레드 구성요소 프로그램 구성요소 프로세스와 스레드의 구성요소 프로그램은 실행이 가능한 상태지만 실행
프로그램 vs 프로세스 vs 스레드
1) 프로그램, 프로세스, 스레드 프로그램 컴퓨터에서 어떤 작업을 실행할 수 있는 ‘정적인 상태’의 파일 (ex. windows의 exe 파일) 프로세스 프로그램이 실행되어 돌아가고 있는 상태, 연속적으로 실행되고 있는 ‘동적인 상태’의 프로그램 즉, 프로그램을 실행하고, 운영체제로 부터 실행에 필요한 자원을 할당받아 프로세스가 되는 것 프로세스는 독립된 메모리 영역을 할당 받기 때문에 다른 프로세스의 변수나 자료구조에 접근할 수 없음 프로세스는 최소 하나 이상의 스레드를 포함함 동시성 : 프로세서는 하나의 프로세스만 실행할 수 있으나, Context Switching을 통해 여러 프로그램을 돌아가며 일부분씩 작업을 수행하

(간단한) 프로그램, 프로세스, 스레드
프로그램(Program) 저장되어 있는 코드 덩어리, 정적 형태, 메모리상에 없음, n개의 프로세스를 가질 수 있음 프로세스(Process) 프로그램의 실행 중인 모든 인스턴스, 동적 형태, 메모리상에 상주하는, 1개의 프로그램을 가짐, n개의 스레드를 가짐 스레드(thread) 프로세스의 실행단위, cpu기본 작업단위, 1개의 프로세스를 가짐 이미지출처 출처 https://velog.io/@ssh1997/CS-Process-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4 https://velog.io/@raejoo
[OS] 프로그램의 흐름 단위
Task 보는 사람에 따라서 실행되는 하나의 프로그램을 의미하기도 하고 최소 작업 단위를 의미하기도 합니다. 후자의 경우 스레드와 프로세스 모두 Task가 될 수 있습니다. 저는 하나의 프로그램으로 이해하겠습니다. 이 말은 한 Task를 처리하는데 하나 이상의 프로세스가 필요하다는 의미입니다. Program 프로그램은 컴파일한 코드와 초기화 전역변수, 문자열과 문자열 상수 등 정적 데이터를 포함하는 정적인 개체입니다. Process 프로세스는 프로그램 카운터나 레지스터처럼 현재 어떤 자원을 사용하는지 관련 정보가 들어 있는 동 적인 개체이다. 프로그램과 관련된 모든 데이터가 메모리에 적재되어 연속적으로 실행 중인 상태를 말합니다. 따라서 운영체제로부터 자원을 할당받는 작업의 단위를 의미합니다. 여러개의 프로세스를 동시에 사용하여(Multi Process) 하나의 작업(Task)를 처리할 수도 있습니다. 장점 각 프로세스는 독립적인 메모리 자원을 가지기 때문에 M

[채팅 프로그램] Socket 활용한 간단한 콘솔 채팅 프로그램
Project Description 콘솔 채팅 구현 (서버와 클라이언트) 종료되지 않으면 답이 올때까지 무한 대기 이는 추후 GUI를 활용한 채팅 프로그램 만들어 볼 예정 "종료" 라는 단어가 들어간 문장 전송 시 서버-클라이언트 간의 대화 연결 종료 socket 활용 고찰 무한 대기가 필요하다 GUI를 활용하면 이 문제를 해결 가능하다 추후 만들어 볼 예정 쓰레드를 활용하지 않아서 특정 사람과의 1대1 통신만 가능하다 추후 멀티쓰레드를 활용한 프로그램 만들어 볼 예정 영어를 사용할 경우 inMsg.contains("종료") 대신 inMsg.equalsIgnoreCase("bye") 사용 추가적으로 utf-8 인코딩을 해줄 수도 있을 것으로 보임 Server Description
Program & Process & Thread
🚀 Program & Process & Thread 🔥 프로그램 – 파일 시스템에 존재하는 실행파일, 정적인 개념으로 컴터에 저장된 실행파일들을 지칭 🔥 프로세스 – 메모리에 올라와 실행되고 있는 프로그램의 인스턴스, 동적인 개념으로 실행된 프로그램을 지칭 🔥 쓰레드 – 프로세스 내에서 할당 받은 자원을 이용해 동작하는 실행 단위 📍 프로세스 vs. 쓰레드 프로세스 운영체제로부터 독립된 메모리 영역을 할당 받는다. 프로세스들은 독립적이기 때문에 통신하기 위해 IPC를 사용 최소 1개의 쓰레드를 갖고 있다. 쓰레드 프로세스 내에서 Stack만 따로 할당 받고 Code, Data, Heap 영역은 공유 프로세스의 자원을 공유하기 때문에 다른 쓰레드에 의한 결과를 즉시 확인 할 수 있다. 프로세스 내에 존재하며 프로세스가 할당받은 자원을 이용해 실행된다. 📍 멀티 프로세스 vs. 멀티
[백준 Java] 6359 다이나믹프로그래밍
[문제] > 서강대학교 곤자가 기숙사의 지하에는 n개의 방이 일렬로 늘어선 감옥이 있다. 각 방에는 벌점을 많이 받은 학생이 구금되어있다. 그러던 어느 날, 감옥 간수인 상범이는 지루한 나머지 정신나간 게임을 하기로 결정했다. 게임의 첫 번째 라운드에서 상범이는 위스키를 한 잔 들이키고, 달려가며 감옥을 한 개씩 모두 연다. 그 다음 라운드에서는 2, 4, 6, ... 번 방을 다시 잠그고, 세 번째 라운드에서는 3, 6, 9, ... 번 방이 열려있으면 잠그고, 잠겨있다면 연다. k번째 라운드에서는 번호가 k의 배수인 방이 열려 있으면 잠그고, 잠겨 있다면 연다. 이렇게 n번째 라운드까지 진행한 이후, 상범이는 위스키의 마지막 병을 마시고 쓰러져 잠든다. 구금되어있는 몇 명(어쩌면 0명)의 학생들은 자신의 방을 잠그지 않은 채 상범이가 쓰러져버렸단 것을 깨닫고 즉시 도망친다. 방의 개수가 주어졌을 때, 몇 명의 학생들이 도주할 수 있는지 알아

Basic CS(2)
2021-06-03 '프로그램에 대해 설명하세요' 이 질문을 받았을 때, 바로 대답이 나오는 사람은 없을 것이다. 어렴풋이 무엇인지는 알고 있는 것 같지만, '프로그램이 뭐지? 뭐라고 설명하지?' 라는 물음표가 더먼저 떠오르지 않을까싶다. 아마 프로그램이라하면, 컴퓨터 프로그램이 먼저 떠오를 것이다. 정확히 프로그램이 무엇인지 한번 알아보자. 1. Program 1-1. 프로그램이란? 먼저, 컴퓨터 프로그램에 대한 사전적 정의를 찾아보자. > 컴퓨터에서 실행될 때 특정 작업(specific task)을 수행하는 일련의 명령어들의 모음(집합체)이다. 특정 문제를 해결하기 위해 처리 방법과 순서를 기술하여 컴퓨터에 입력되는
What is Natural language processing?
One of the most revolutionary things that artificial intelligence can do today is to speak write listen as well as understand human language in simple terms natural language processing is a form of artificial intelligence which attracts meaning from human language to make decisions based on that information most NLP techniques rely on machine learning to derive meanings from human language, in fact, a simple interaction between humans and machine using NLP can go as follows- A human talks to
OCT 05 : 1. What is Java?
✔ Today's goal > ## 📌 1.1 Programming language 🍭 Programming language Definition : A programming laguage is a translator between computer(machine) and people. 👩 | 💡 | 💻 ----|----|---- human | Programming language | Machine(computer)